【问题标题】:Upload files to a remote server将文件上传到远程服务器
【发布时间】:2012-02-06 06:36:00
【问题描述】:

我需要将驻留在 Web 服务器中的 asp.net (C#) 页面中的文件上传到远程服务器。

我设法使用以下代码将文件从本地主机上传到远程服务器:

      string serverPath = "\\\\xx.xxx.xx.xx\\Folder\\" + FileUpload1.FileName;
      FileUpload1.PostedFile.SaveAs(serverPath);

但在我将此代码发布到我的网络服务器后,它停止工作并出现错误“找不到网络路径”。

我查看了一些建议使用 UNC 网络共享和实施模拟的解决方案。 我不知道如何应用这些解决方案。

谁能举个例子,或者提出一个更简单的解决方案。

谢谢!!

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    在FileUpload1.PostedFile.SaveAs(path)中,path是文件的物理路径,没有Url。您必须检查:

    • 物理文件夹是否存在?
    • 您是否有权访问文件夹?

    如果两个问题的答案都是正确的,请检查此代码:

    string serverPath = @"\\xxx.xxx.xxx.xxx\Folder\";
    if (!System.IO.Directory.Exists(serverPath))
        System.IO.Directory.CreateDirectory(serverPath);
    
    FileUpload1.PostedFile.SaveAs(serverPath + FileUpload1.FileName);
    

    【讨论】:

      【解决方案2】:

      运行您的应用程序的帐户必须对您尝试将文件上传到的文件夹具有写入权限:\\xx.xxx.xx.xx\Folder\。因此,您必须将 IIS 中的应用程序池配置为在具有足够权限的帐户下运行。转到 IIS 管理控制台中的应用程序池属性,您可以在其中指定用于运行应用程序的帐户。默认情况下,它使用一个无法访问共享资源的内置帐户。看看following article,它解释了如何做到这一点。

      【讨论】:

        【解决方案3】:

        您需要在您的网络服务器上有一个虚拟目录才能上传到。在代码中,您必须使用 Server.Mappath("virtual path") 函数来获取其服务器路径,然后保存到它。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-28
          • 2015-12-15
          • 1970-01-01
          • 2017-05-23
          • 2012-03-26
          • 1970-01-01
          相关资源
          最近更新 更多