到目前为止,我知道如何使用下面的代码将文件上传到我的解决方案中的文件夹。
string root = HttpContext.Current.Server.MapPath("~/upload");
如何将文件保存到不在解决方案范围内的其他位置,即映射到我的电脑的服务器位置。
string root = HttpContext.Current.Server.MapPath("/Z:/UploadFolder"); I have tried this but its not saving to the server so where I am going wrong?
答案 0 :(得分:1)
如果您有相对路径并且想要使用项目路径,则应使用const subject = new Subject<string>();
const next = (value: number) => subject.next((value * value).toString());
subject.subscribe(value => console.log(value));
next(1); // logs '1'
next(2); // logs '4'
。对于另一条路径,您不需要MapPath
。就像这样使用它:
MapPath
答案 1 :(得分:0)
您可以将IIS中的虚拟目录映射到要保存到的位置。例如,将UploadFolder的虚拟目录映射到z:\ uploadfolder。然后,这将工作:
string root = HttpContext.Current.Server.MapPath("~/upload");
确保正确设置权限。
答案 2 :(得分:0)
你的逻辑似乎令人困惑。使用Server.MapPath - 返回与指定虚拟路径对应的物理文件路径。
但是您在第二个语句中将物理位置传递给Server.MapPath,这无法实现Server.MapPath的全部目的。
string root = HttpContext.Current.Server.MapPath("/Z:/UploadFolder"); **INCORRECT**
理想情况下,您需要创建一个映射到“/ Z:/ UploadFolder”的虚拟目录,并将其命名为“upload”。
string root = HttpContext.Current.Server.MapPath("~/upload");
注意:您需要传递显式凭据才能从ASP.NET访问网络共享。建议的方法是使用Identity模拟,一旦使用相同的逻辑重试。
<configuration>
<system.web>
<identity impersonate="true" />
</system.web>
</configuration>