我正在尝试将图像存储到两个应用程序中(均在服务器上发布)。这是我保存图片的代码:
string path = Server.MapPath("/Images/Landing/bottom_banner/");
string path1 = @"_http://10.241.193.22/Myapplication/Images/Landing/bottom_banner/";
HttpPostedFileBase photo = Request.Files["adup"];
if (photo.ContentLength != 0)
{
string lastPart = photo.FileName.Split('\\').Last();
Random random = new Random();
int rno = random.Next(0, 1000);
photo.SaveAs(path + rno + lastPart);
photo.SaveAs(path1 + rno + lastPart);
}
注意:Myapplication
是托管在同一服务器上的另一个应用程序
我的问题是我能够使用Server.MapPath
在我的第一个应用程序中保存图像,但是当编译器到达photo.SaveAs(path1 + rno + lastPart)
部分时,它会出错:
SaveAs方法配置为需要有根路径,并且路径'_http://10.241.193.22/Myapplication/Images/Landing/bottom_banner/676Chrysanthemum.jpg'未植根
请建议我如何消除此问题?
答案 0 :(得分:1)
您应该将映像POST到第二台服务器并在那里使用相同的方法(Server.MapPath)。
无法在远程服务器上保存图像(或其他文件)。
如果你知道绝对路径(例如)' C:\ Web \ ApplicationOne ... \ image.png \'和' C:\ Web \ ApplicationTwo ... \ image.png'你可以像这样替换路径差异:
photo.SaveAs(path + rno + lastPart);
photo.SaveAs(path.Replace("ApplicationOne", "ApplicationTwo") + rno + lastPart);
答案 1 :(得分:1)
我不确定这是否正确,但你可以这样做吗?
在当前应用程序存储Server.MapPath值中,然后用“Myapplication”替换当前应用程序名称,然后添加尾随路径。像这样的东西
string path1 = Server.MapPath("");
path1.Replace("Application1", "Myapplication"); //Considering "Application1" is the name of your current application
path1 += "/Images/Landing/bottom_banner/";
HttpPostedFileBase photo = Request.Files["adup"];
if (photo.ContentLength != 0)
{
string lastPart = photo.FileName.Split('\\').Last();
Random random = new Random();
int rno = random.Next(0, 1000);
photo.SaveAs(path1 + rno + lastPart);
}
这个可能存在权限问题。我还没检查过。如果有效,请告诉我。