在asp.net mvc3 中,在controller中使用HttpPostedFileBase file 参数获取上传的文件,文件路径问题

转载: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