【问题标题】:Full path of HttpPostedFileBase is giving error with webclient upload fileHttpPostedFileBase 的完整路径导致 webclient 上传文件出错
【发布时间】:2015-05-26 05:50:56
【问题描述】:
public ActionResult Index(PublishPost post, HttpPostedFileBase f)
{ 
    string apiUrl = "http://myurl.com"
    WebClient Client = new WebClient();
    byte[] rb = Client.UploadFile(apiUrl, "POST", f.FullName);
    string response = Encoding.UTF8.GetString(rb);
}

httppostefilebase 的路径正在显示 -- C:\Windows\SysWOW64\inetsrv\adminrights.JPG 但它在 webclient 上出现错误 - Path not found。请帮忙

【问题讨论】:

  • 您是在本地测试还是在某些服务器上测试?如果string apiUrl = "http://myurl.com" 是某个服务器 URL,并且您正在上传存储在本地的文件,它将无法正常工作。你应该使用using (var fileStream = File.Create(BasePath + FolderName + fileName)) { f.InputStream.CopyTo(fileStream); }
  • 您是否在 iis 上托管了您的网站??
  • @Kamo 如果我创建一个文件,那么我也必须删除它,对吗?你能写一个同样的例子吗,我也应该在 app_code 文件夹或其他文件夹中创建文件吗?
  • @rohitsingh 删除文件阅读此msdn.microsoft.com/en-us/library/…

标签: c# asp.net-mvc asp.net-mvc-4 file-io webclient


【解决方案1】:

要使用HttpPostedFileBase 上传文件,您可以使用以下 sn-p:

public void UploadFile(HttpPostedFileBase file)
{
        var folderName = "/Content/Upload/Images/";
        var fileName = file.FileName;
        using (var fileStream = File.Create(BasePath + folderName + fileName))
        {
            file.InputStream.CopyTo(fileStream);
        }
}

只要 IIS 有权写入文件,上传文件的文件夹就不是问题。

要删除文件只需参考https://msdn.microsoft.com/en-us/library/system.io.file.delete(v=vs.110).aspx

我不知道你在上传后询问是否删除文件是什么意思 - 这取决于你的意图。

【讨论】:

  • 这里的基本路径是什么?
  • @rohitsingh - 随便你,我用AppDomain.CurrentDomain.BaseDirectory
  • 感谢您的帮助:)
猜你喜欢
  • 1970-01-01
  • 2013-11-24
  • 2016-11-26
  • 1970-01-01
  • 2011-04-17
  • 1970-01-01
  • 2016-03-13
  • 2012-07-13
  • 2013-06-29
相关资源
最近更新 更多