将文件上传到不同的虚拟目录

时间:2012-01-18 01:45:28

标签: asp.net asp.net-mvc visual-studio-2008 iis

我有两个托管在不同服务器上的Web应用程序。例如。一个是主要应用程序,另一个是分支应用程序。 在分支应用程序中,用户将上传他们的文件,但我们希望将所有上传的文件保存在主应用程序虚拟目录中。

因此我们在上传文件时放置主应用程序虚拟目录路径。但是我们收到了“无效目录”等错误消息,无法上传。 有没有办法直接将文件从一个应用程序上传到另一个应用程序?我们在asp.net和visual studio 2008中使用普通的html上传控件。

Code Sample : 
main application virtual directory "http://10.10.10.1/mainapp/uploadedfiles/" 
branch application virtual directory "http://10.10.10.2/branchapp/"

HttpPostedFile postedFile;
string saveFile = Path.Combine("http://10.10.10.1/mainapp/uploadedfiles/", "File1.pdf");
postedFile.SaveAs(saveFile);

请以正确的方式指导我,我真的很感激。

感谢。

最诚挚的问候,

2 个答案:

答案 0 :(得分:2)

在FileUpload控件中,FileUpload.SaveAs(path)方法采用物理路径,而不是虚拟路径。因此,如果您有虚拟路径,则需要使用Server.MapPath方法将其转换为物理路径。使用您的示例,您可能希望将代码的最后一行更改为:

postedFile.SaveAs(使用Server.Mappath(saveFile的))

此外,您需要确保运行ASP.Net的帐户在物理目录上具有ACL写权限。

答案 1 :(得分:1)

我认为你可以共享目录并确保两个应用程序都可以访问它,因为这两个应用程序位于不同的服务器中,目录路径可能就像:\ serverA \ Files \,这个目录的url是:{ {3}}。如果你有权限,你可以通过相对路径将文件保存到其他服务器。