转载:https://zhidao.baidu.com/question/444203596.html
在asp.net mvc3 中,在controller中使用HttpPostedFileBase file 参数获取上传的文件,开始的时候file.filename获取的为文件的名称,后来不知为何,file.filename 获取的为文件的全路径。查了下msdn,HttpPostedFileBase 的filename 属性确实为获取全路径。我想知道为什么, 希望高人指点谢谢!
file.SaveAs(path + file.FileName);//保存文件
这句代码中file.FileName 为文件的全路径,还是只是文件名称?
重新说明一下,之前我测试用的是谷歌浏览器不是IE。在IE中file.FileName包含路径名的,而谷歌不包含。所以我之前的回答中才会说文件名中不包含路径名,我想你问题就是这个引起的。你可以在保存前加个判断:
string fileName = file.FileName;
if (fileName.LastIndexOf("\") > -1)
{
fileName = fileName.Substring(fileName.LastIndexOf("\") + 1);
}
这样就Ok了,同时兼容谷歌和IE