烦死了:路径无效。应为虚拟路径???
错误提示如下:
MapPath“I:\raqi\productpicmin\1\Waterlilies_m.jpg”的路径无效。应为虚拟路径。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息:
System.ArgumentException: MapPath“I:\raqi\productpicmin\1\Waterlilies_m.jpg”的路径无效。应为虚拟路径。
源错误:
行 335: dire0.Create();
行 336: }
行 337: bt.Save(Server.MapPath(@ "I:\raqi\productpicmin\1\Waterlilies_m.jpg "),ici,ep);
行 338: }
行 339: }
但我这个路径是没有问题的啊
foreach (FileInfo f in d.GetFiles())
{
if(f.Name.Substring(f.Name.LastIndexOf( ". ")+1) == "jpg ")
{
string dire = f.DirectoryName;
string imgUrl = dire + @ "\ "+f.Name;
System.Drawing.Image oldImg = System.Drawing.Image.FromFile(f.FullName);
System.Drawing.Image newImg = oldImg.GetThumbnailImage(120, 120, new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero);
Bitmap bt = new Bitmap(newImg);
// ===处理JPG质量的函数===
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
ImageCodecInfo ici = null;
foreach (ImageCodecInfo codec in codecs)
{
if (codec.MimeType == "image/jpeg ")
{
ici = codec;
}
}
EncoderParameters ep = new EncoderParameters();
ep.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)90);
string filename = imgUrl.Substring(imgUrl.LastIndexOf(@ "/ ")+1).Substring(0,(imgUrl.Substring(imgUrl.LastIndexOf(@ "/ ")+1).LastIndexOf( ". ")));
filename = filename.Substring(filename.LastIndexOf(@ "\ ")+1);
string newfile = imgUrl.Replace( "productpic ", "productpicmin ").Replace(filename,filename+ "_m ");
string dirctoryurl = newfile.Substring(0,newfile.LastIndexOf(@ "\ ")+1);
DirectoryInfo dire0 = new DirectoryInfo(dirctoryurl);
if(!dire0.Exists)
{
dire0.Create();
}
bt.Save(Server.MapPath(newfile) ,ici,ep);
}
}
大家帮忙看看,被这个问题烦死了
------解决方案--------------------相对你当前路径用 "/ ", "../ "这样就行了,不要用Server.MapPath()方法
------解决方案--------------------虚拟路径和网页路径是用/的
本地硬盘是用\的
像你这个,路径应该类似于
Server.MapPath( "roductpicmin/Waterlilies_m.jpg "),
最终返回值类似于
http://localhost/raqi/roductpicmin/Waterlilies_m.jpg
------解决方案--------------------楼上2位正解