将客户端中的文件移动到另一个驱

时间:2017-10-11 18:41:38

标签: c# file asp.net-web-api

我正在尝试使用File.Copy(“C:\ somepath \ file.bmp”,“\ xxx \ data \ file.bmp”)将文件从客户端复制到网络驱动器。虽然在本地调试它工作正常,而在服务器它无法工作。我相信File.copy在API服务器的C盘中查找,但无法找到该文件。我该如何解决这个问题?请帮帮我...

1 个答案:

答案 0 :(得分:0)

将web api视为Web应用程序。因此,它将具有应用程序池,这意味着它将执行该特定标识下的所有内容,这意味着它受该标识的特定权限的约束。

其次,作为一个网络应用程序,它无法访问自己位置之外的任何内容。这意味着您无法访问用户驱动器上的任何内容,这是一件好事,因为这会给几乎任何人带来重大安全漏洞。

当你做这样的事情时,你真的想要使用虚拟路径。例如,您可以在App_Data下拥有文件,但您还必须记住您从何处复制到何处。

您可以根据应用程序的位置使其在本地运行,但是当部署到服务器时,路径会有所不同,因此您真正想要使用虚拟路径并且还需要了解安全性你正在建设的含义。

例如,如果您尝试上传文件,则可以在应用程序所在的文件夹下的某个位置执行此操作。