我目前正在使用下面的代码行将文件上传到应用程序中名为“ 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);
答案 0 :(得分:0)
您需要使用“ double-back-wack”路径,因为我的网络团队很乐意给他们打电话。
它看起来像这样:
\\SERVERNAME\MyUploadsFolder
您的网络团队可能需要为您设置此路径,以便它找到您要查找的正确服务器驱动器。如果您已经可以通过本地计算机上的映射驱动器访问该文件夹,请查看该映射驱动器指向的位置,该路径应类似于我上面的路径。
因此,您的代码将如下所示:
string fullPath = HttpContext.Current.Server.MapPath(@"\\SERVERNAME\MyUploadsFolder");
如其中一条注释所述,您需要确保运行Visual Studio的本地Active Directory帐户具有写入该目录的正确权限。否则,您将需要“模拟”通过C#代码访问该文件夹的用户。如果您能够登录到该服务器或从本地计算机访问该网络驱动器,并且能够查看文件并对其进行更改,那么您应该能够在本地运行它。但是,如果将更改发布到另一台服务器,则该代码将不再在您的活动目录帐户下运行,并且您将收到权限错误。