【问题标题】:How to give path of a folder in server to save an image?如何在服务器中提供文件夹的路径以保存图像?
【发布时间】:2013-04-05 12:20:26
【问题描述】:

我正在尝试将图像存储到两个应用程序中(均发布在服务器上)。这是我保存图像的代码:

 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方法配置为需要root路径,路径'_http://10.241.193.22/Myapplication/Images/Landing/bottom_banner/676Chrysanthemum.jpg'没有root

请建议我怎样才能消除这个问题?

【问题讨论】:

  • 在那个问题中,这个人试图将文件保存在一个应用程序中。这里我试图保存到两个单独的应用程序中。
  • 尽管如此,第一个答案中给出了解决方案,请尝试将其用于您的案例

标签: c# asp.net-mvc save-as server.mappath


【解决方案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);
        }

这个可能存在权限问题。我没有检查过。如果可行,请告诉我。

【讨论】:

  • 我会在星期一试试这个并让你知道,虽然我认为它是正确的方法并且它应该可以工作。无论如何我会在我检查后告诉你
【解决方案2】:

您应该将图像发布到第二台服务器并在那里使用相同的方法(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);

【讨论】:

  • 参见 OP:“Myapplication 是另一个托管在同一服务器上的应用程序”
  • 两个应用程序在同一台服务器上
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 2018-05-29
  • 2016-04-06
  • 2019-08-27
  • 1970-01-01
  • 2015-02-18
相关资源
最近更新 更多