【问题标题】:The SaveAs method is configured to require a rooted path, and the path '~\\images\\594083964.jpg' is not rootedSaveAs 方法配置为需要有根路径,并且路径 '~\\images\\594083964.jpg' 没有根路径
【发布时间】:2010-11-23 23:19:51
【问题描述】:

SaveAs 方法配置为需要有根路径,并且路径“~\images\594083964.jpg”没有根。 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详情:

System.Web.HttpException:SaveAs 方法配置为需要有根路径,而路径 '~\images\594083964.jpg' 没有根。

来源错误:

Line 27:     {
Line 28: 
Line 29:         fu1.SaveAs(@"~\\images\\" + i + fu1.FileName.Substring(fu1.FileName.Length - 4, 4));
Line 30: path = "~\\images\\"+i + fu1.FileName.Substring(fu1.FileName.Length-4,4);
Line 31: }

源文件:e:\PEOPLE\Ravi\new data\WebSite1\signup.aspx.cs 行:29

【问题讨论】:

  • 我想你可以假设他不想要这个错误;)

标签: c# asp.net exception


【解决方案1】:

您要保存到的路径是一个相对 URL。您需要保存到本地文件路径(或完整的网络路径)。

试试:

string relativePath = @"~\images\"+ i + Path.GetExtension(fu1.FileName);
fu1.SaveAs(Server.MapPath(relativePath));

(Path.GetExtension(string) 将处理不是 3 个字符的文件扩展名)

【讨论】:

  • 虽然你应该在相对路径中使用 /,而不是 \.
  • @Guffa 你确定这有什么不同吗?
  • 该方法可能足以将不正确的分隔符转换为正确的分隔符,但是当您可以轻松地使用正确的分隔符时,没有理由依赖这种行为(可能会改变) .
猜你喜欢
  • 2011-12-13
  • 2023-03-24
  • 2010-11-15
  • 1970-01-01
  • 1970-01-01
  • 2018-07-11
  • 2014-09-26
  • 1970-01-01
  • 2015-11-14
相关资源
最近更新 更多