【问题标题】:Save file outside the root directory vb.net将文件保存在根目录 vb.net 之外
【发布时间】:2013-05-01 21:25:10
【问题描述】:

您好,我正在 vb.net 中开发 Web 应用程序。使用此代码将文件从客户端上传到服务器端文件夹时遇到问题

Dim fileName As String = Path.GetFileName(FileUpload1.PostedFile.FileName)
Dim ext As String = System.IO.Path.GetExtension(fileName)
FileUpload1.PostedFile.SaveAs(Server.MapPath("~/EmployeeSignature/../../") + "IMG12345" & ext)

这里是根目录和目标目录结构

这是我的网站内部结构(UploadingTest)

问题在于这一行

FileUpload1.PostedFile.SaveAs(Server.MapPath("~/EmployeeSignature/../../") + "IMG12345" & ext)

我收到错误消息

Cannot use a leading .. to exit above the top directory.

我的要求是将文件保存在根目录以上,尝试了很多但无法解决问题,请提出任何解决方案!谢谢

【问题讨论】:

    标签: asp.net vb.net-2010


    【解决方案1】:

    在 IIS 中,在您的网站中添加虚拟目录

    1. 员工签名
    2. 图片

    现在您可以使用以下代码访问文件夹

    HttpContext.Current.Server.MapPath("EmployeeSignatures")
    HttpContext.Current.Server.MapPath("Images")
    

    【讨论】:

      【解决方案2】:

      当您使用MapPath 进行转换时,您不能在逻辑路径中使用.. 来跨出Web 根目录的文件夹。将那些移到MapPath 呼叫之外:

      Server.MapPath("~") + "\..\EmployeeSignature\IMG12345" + ext
      

      【讨论】:

        猜你喜欢
        • 2012-07-24
        • 2011-03-03
        • 2011-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-19
        • 2021-11-03
        • 2013-04-29
        相关资源
        最近更新 更多