【问题标题】:String.Empty as DirectoryName of HttpPostedFileBaseString.Empty 作为 HttpPostedFileBase 的 DirectoryName
【发布时间】:2011-12-18 05:08:33
【问题描述】:

我有一个带动作的控制器:

[HttpPost]
        public ActionResult Add(Question container, HttpPostedFileBase file)
        {

            if (file != null && file.ContentLength > 0)
            {
                var clientPath=Path.GetDirectoryName(file.FileName);

客户端路径是""

我需要这个,因为我不想将文件保存在我的服务器上,而是立即将其发送到 flickr

        string photoId = flickr.UploadPicture(clientPath, title, description, "", uploadAsPublic, false, false);

如何获取客户端文件的路径?

顺便说一句,我正在使用 FlickrNet 库。

【问题讨论】:

  • 现代浏览器不会发送完整的文件路径(出于安全原因),因此您无法知道文件的位置,只知道其名称。

标签: asp.net asp.net-mvc-3 file-upload flickr


【解决方案1】:

要直接发送文件而不先保存在服务器上,只需使用重载方法:

string photoId = flickr.UploadPicture(file.InputStream, title, description, "", uploadAsPublic, false, false);

【讨论】:

    【解决方案2】:

    您说您想将文件直接发送到 Flickr,但您的代码尝试为此使用 clientpath...即使它不是空的(这是因为安全原因!)您的代码将无法正常工作...因为它会尝试使用仅存在于您的 ASP.NET 应用程序客户端的路径,就好像它是您服务器上的路径...

    您尝试的 AFAIK 是不可能的 - 可能的是:

    如果 FlickrNet 库提供了一个接受 StreamUploadPicture 方法,那么您可以使用 file.InputStream 调用它...如果它没有提供这样的重载,您必须将文件本地保存在服务器上以便上传到 Flickr!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-12
      • 1970-01-01
      相关资源
      最近更新 更多