【发布时间】:2023-03-14 18:10:01
【问题描述】:
我需要将图像文件上传和读取到不属于我的项目文件夹的文件夹。我的网站托管在 IIS 服务器中。我已经将文件保存在我的项目文件夹中。没有问题。但我需要将其更改为外部文件夹。我怎样才能做到这一点?我正在使用 .NET 4.5.2。
这是我现在用的
string filename = Path.GetFileName(objdata.image.FileName);
string imagepath = Path.Combine(Server.MapPath("~/SupplierImages/"), filename);
if (System.IO.File.Exists(imagepath))
{
System.IO.File.Delete(imagepath);
}
objdata.image.SaveAs(imagepath);
【问题讨论】:
-
当您尝试将文件保存到另一个文件夹时会发生什么?这会以任何方式失败吗?
-
使用这种方法,如果文件夹在我的项目根目录中,我可以保存和读取文件。但我需要把它拿到外面。 'Server.MapPath' 不适用于外部路径。
-
嗯,是的,因为
Server.MapPath是将Web 项目内部 的相对路径映射到它们相应的文件系统路径。当您只使用要保存文件的实际文件系统路径时会发生什么? -
我收到此错误。我在 IIS 根目录中创建了新文件夹。然后尝试将文件保存在其中。 'C:/inetpub/wwwroot/SupplierImages/' 是物理路径,但应该是虚拟路径。
-
具体是什么引发了该错误?这听起来像是
Server.MapPath会抛出的东西,但你不应该使用它。
标签: c# .net asp.net-mvc