将文件上载到远程服务器
我需要将驻留在Web服务器中的asp.net(C#)页面上的文件上传到远程服务器。
我设法使用以下代码从localhost将文件上传到远程服务器:
string serverPath = "\\\\xx.xxx.xx.xx\\Folder\\" + FileUpload1.FileName; FileUpload1.PostedFile.SaveAs(serverPath);
但是在我将此代码发布到我的Web服务器之后,它停止使用错误“未找到网络路径”。
我已经看了一些建议使用UNC网络共享并实施模拟的解决方案。 我无法弄清楚如何应用这些解决方案。
有人可以举个例子,或建议一个更简单的解决方案。
谢谢!!
在FileUpload1.PostedFile.SaveAs(path)中,path是文件的物理路径,No Url。 你必须检查:
- 是物理文件夹Exsist?
- 你有权访问文件夹吗?
如果两个问题的答案都是真的,请检查此代码:
string serverPath = @"\\xxx.xxx.xxx.xxx\Folder\"; if (!System.IO.Directory.Exists(serverPath)) System.IO.Directory.CreateDirectory(serverPath); FileUpload1.PostedFile.SaveAs(serverPath + FileUpload1.FileName);
运行应用程序的帐户必须对您尝试将文件上载到的文件夹具有写权限: \\xx.xxx.xx.xx\Folder\
。 因此,您必须在IIS中配置应用程序池,以便在具有足够权限的帐户下运行。 转到IIS管理控制台中的应用程序池属性,您可以在其中指定用于运行应用程序的帐户。 默认情况下,它使用内置帐户,该帐户无权访问共享资源。 请看下面的文章 ,该文章解释了如何操作。
您需要在您的网络服务器上上传一个虚拟目录。 在代码中,您必须使用Server.Mappath(“虚拟路径”)函数来获取其服务器路径,然后保存到它。