Server.mappath混淆

时间:2012-07-08 17:40:21

标签: c# asp.net

我对于server.mappath有一点困惑 哪个是正确的,这两个有什么区别

FileUpload1.saveAs(Server.MapPath("~/User/images/")+"ankush.jpg"));

FileUpload1.saveAs(Server.MapPath("~/User/images")+"ankush.jpg"));

2 个答案:

答案 0 :(得分:3)

使用MapPath()的正确方法是:

FileUpload1.saveAs(Server.MapPath("~/User/images/ankush.jpg"));

或者如果你坚持:

FileUpload1.saveAs(Path.Combine(Server.MapPath("~/User/images"),"ankush.jpg")));

MapPath()不会向映射路径追加一个尾部反斜杠,因为它无法知道路径是目录还是文件(它不会检查给定路径是否确实存在)

答案 1 :(得分:1)

我建议你这样使用

FileUpload1.saveAs(Server.MapPath("~/User/images/ankush.jpg"));

原因:因为如果您已经知道路径,那么为什么要单独分解文件名 如果文件名是通过参数传递的,那么你可以做

FileUpload1.saveAs(Server.MapPath(String.Format("~/User/images/{0}", fileName)));