【问题标题】:Get the full path from a file upload从文件上传中获取完整路径
【发布时间】:2011-04-17 16:33:30
【问题描述】:

当我使用文件上传控件时,我只获取文件名,但我想获取文件位置的完整路径。

如何从 ASP.NET 中的文件上传控件中获取完整路径?

【问题讨论】:

标签: c# asp.net file-upload


【解决方案1】:

作为一种安全措施,这在任何浏览器中都是不可能的。

如果可能的话,攻击者可以获得有关文件/文件夹在客户端计算机上的结构的信息。

为什么需要这些信息?

【讨论】:

  • ´UploadControl.PostedFile.FileName´ 给出了 Internet Explorer 8 中的完整路径,(至少在我的测试中)Chrome 没有。
  • @Magnus - IE8 就是这样坏的。
【解决方案2】:

您无法获取它,因为浏览器不发送它。如果浏览器在用户的系统上发送完整路径会很危险。

【讨论】:

    【解决方案3】:

    如果您使用的是 ASP.NET 上传控件,在客户端您可以获得如下所示的完整路径。

       document.getElementById('UploadControl').value
    

    在服务器端,

      UploadControl.PostedFile.FileName
    

    查看 MSDN 文章 HttpPostedFile.FileName Property 了解更多信息。

    【讨论】:

      【解决方案4】:

      我想你得到了上传控件的文件路径

      HttpPostedFile httpBrowseFile = FileUpload1.PostedFile;
      int FileLength = httpBrowseFile.ContentLength;
      byte[] myData = new byte[FileLength];
      
      httpBrowseFile.InputStream.Read(myData, 0, FileLength);
      FName = path + FileUpload1.PostedFile.FileName.Substring(FileUpload1.PostedFile.FileName.LastIndexOf('\\') + 1);
      

      【讨论】:

        猜你喜欢
        • 2013-11-24
        • 2016-11-26
        • 1970-01-01
        • 2016-03-13
        • 1970-01-01
        • 2010-12-10
        • 2012-07-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多