烦死了:路径无效。应为虚拟路径???

wang2245 2007-07-11 10:47:49
错误提示如下:
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);
}
}


大家帮忙看看,被这个问题烦死了
...全文
831 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zn3078 2011-08-24
  • 打赏
  • 举报
回复
学习了~~~~~~~
Eray 2007-07-11
  • 打赏
  • 举报
回复
虚拟路径和网页路径是用/的
本地硬盘是用\的

像你这个,路径应该类似于
Server.MapPath("roductpicmin/Waterlilies_m.jpg"),

最终返回值类似于
http://localhost/raqi/roductpicmin/Waterlilies_m.jpg
ztwz 2007-07-11
  • 打赏
  • 举报
回复
相对你当前路径用"/","../"这样就行了,不要用Server.MapPath()方法
hui1202 2007-07-11
  • 打赏
  • 举报
回复
楼上2位正解

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧