我有一个带动作的控制器:
[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。
答案 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!