【问题标题】:Asp.net uploading fileAsp.net 上传文件
【发布时间】:2012-11-19 21:12:05
【问题描述】:

我有一个这样的 FileLoad 控制器:

     <asp:FileUpload ID="FileUpload1" runat="server" />

我喜欢做的是一旦用户将文件上传到服务器上的 /images/logos 文件夹 选择 gif 图像:

     string uploadFolder = Server.MapPath("/images/logos/");

     string uploadfile = uploadFolder + "Image1" + ".gif";
     FileUpload1.SaveAs(uploadfile); 

当我查看 uploadfile 的值时,它以 C:.... 开头。

我相信它应该类似于 /images/logos/Image1.gif,因为当它完成时,images/logos 文件夹中没有任何内容。请注意,我没有收到任何错误。

我做错了什么。

【问题讨论】:

  • 真是个怪人。您是否在 IIS 中设置了此虚拟文件夹?也许您可以在FileUpload1.SaveAs(uploadfile); 处设置一个断点并检查上传文件路径是什么?

标签: asp.net file-upload upload


【解决方案1】:
Server.MapPath("/images/logos/") // Will map to the wwwroot folder
Server.MapPath("~/images/logos/") // Will map to the application folder

【讨论】:

  • 谢谢杰克。 server.MapPath 我应该使用什么。如前所述,当我在本地测试它时,它会给出 C:\\....
  • @WebDev:我会推荐使用它。这是获取相对(“/images”)或虚拟(“~/images”)文件夹的最简单方法。请记住,“/images/logos”将是您的 IIS 站点之外的一个文件夹,而“~/images/logos”将在您的应用程序中。当您部署到生产环境时,如果 wwwroot 文件夹位于 D: 驱动器上,它将相应地映射它。 HTH
【解决方案2】:

Server.MapPath 根据您提供的相对路径为您提供服务器上的绝对路径。

http://msdn.microsoft.com/en-us/library/ms524632%28v=vs.90%29.aspx

【讨论】:

  • 谢谢。如果我正在使用文件上传,这是我需要的吗? Server.MapPath?
  • 这是一种方法,我倾向于避免使用 Server.MapPath,因为它更难测试。我通常使用基本目录的配置条目。
猜你喜欢
  • 2011-03-11
  • 2011-04-04
  • 2023-03-10
  • 1970-01-01
  • 2016-03-23
  • 1970-01-01
  • 2015-04-18
  • 2018-01-21
相关资源
最近更新 更多