String.Empty作为HttpPostedFileBase的DirectoryName

时间:2011-10-30 13:33:19

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

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

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

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

和clientpath是""

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

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

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

我正在使用FlickrNet库btw。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

你说你想把文件直接发送到Flickr但是你的代码试图使用clientpath来做这个......即使它不是空的(这是因为安全!)你的代码会不工作......因为它会尝试使用仅存在于ASP.NET应用程序客户端的路径,就像它是服务器上的路径一样......

你的尝试是AFAIK不可能 - 这是可能的:

如果FlickrNet库提供接受UploadPicture的{​​{1}}方法,那么您可以使用Stream调用它...如果它没有提供这样的过载,则必须保存文件在您的服务器本地,以便将其上传到Flickr!