如何将文件从本地主机上传到ASP.NET MVC C#中的服务器

时间:2019-09-12 12:39:31

标签: c# asp.net asp.net-mvc file-upload

我目前正在使用下面的代码行将文件上传到应用程序中名为“ uploads”的文件夹中,并且工作正常。

string fullPath = HttpContext.Current.Server.MapPath("~/Uploads");
CustomMultipartFormDataStreamProvider streamProvider = new CustomMultipartFormDataStreamProvider(fullPath);

我现在想知道如何在本地主机上进行开发时如何上传到名为“ uploads”的文件夹,该文件夹位于我们公司服务器上的D驱动器上。想要这样做的原因是因为我需要使用openrowset将数据从该文件提取到公司服务器上的表中。这是我尝试过的,假设全局与本地不一样。我还假设需要凭据,也许我可以从连接字符串中获取那些凭据?请协助

string fullPath = HttpContext.GetGlobalResourceObject.Server.MapPath("~/Uploads");
CustomMultipartFormDataStreamProvider streamProvider = new CustomMultipartFormDataStreamProvider(fullPath);

1 个答案:

答案 0 :(得分:0)

您需要使用“ double-back-wack”路径,因为我的网络团队很乐意给他们打电话。

它看起来像这样:

\\SERVERNAME\MyUploadsFolder

您的网络团队可能需要为您设置此路径,以便它找到您要查找的正确服务器驱动器。如果您已经可以通过本地计算机上的映射驱动器访问该文件夹,请查看该映射驱动器指向的位置,该路径应类似于我上面的路径。

因此,您的代码将如下所示:

string fullPath = HttpContext.Current.Server.MapPath(@"\\SERVERNAME\MyUploadsFolder");

如其中一条注释所述,您需要确保运行Visual Studio的本地Active Directory帐户具有写入该目录的正确权限。否则,您将需要“模拟”通过C#代码访问该文件夹的用户。如果您能够登录到该服务器或从本地计算机访问该网络驱动器,并且能够查看文件并对其进行更改,那么您应该能够在本地运行它。但是,如果将更改发布到另一台服务器,则该代码将不再在您的活动目录帐户下运行,并且您将收到权限错误。