JSP如何取得<input type="file"> 文件路径

最近写了一个JSP发送邮件的程序,用<input type="file">标签选择发送文件的路径,程序在IE 6.0或者基于IE 6.0内核的浏览器中能正常发送附件,但是在IE9,firefox 4或者Chrome 13中都会出现找不到文件路径的情况,发生I/O异常,不知道怎么解决啊?搜索了N久,都没有知道到JSP的解决办法。
  哪位高手遇到过这种情况,谁能帮帮我?

6个回答

表单上传如果不加enctype= "multipart/form-data ",上传文件时使用默认编码application/x-www-form-urlencoded,不能用于文件上传,而添加后设置编码为MIME编码才能完整上传。还有就是天加了enctype= "multipart/form-data "不能使用request.getParameter("fileName")来获取表单元素。
从ie8后,火狐就不用说了,在中是不能取到文件的路径了,你只能得到文件和文件名。要文件路径你只能自己把它存放到工程目录下的相对路径下,再取出来。

1.用request.getParameter(String str)

后台用String fileName=request.getParameter("fileName")获取,试试
2.直接获取服务器上的内容
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List list = upload.parseRequest(request);
不知道对不对,希望对你有帮助

1.是以post方式提交的的吗
2.有无 :enctype= "multipart/form-data "
3.可以用隐藏iframe的方式

贴出异常信息

是post提交,如果有enctype= "multipart/form-data "的话,程序就出错,运行起来没反应,我在IE6试了下,可以取得路径(不过此时我的程序能正常运行,但是有乱码出现)

建议楼主朋友贴出所有代码
另: enctype= "multipart/form-data " 中最后有一空格, 我没试过有无影响。

不是很明白楼主的意思。

JSP是在服务端跑的,根本管不到客户端的东西。

如果你是希望文件服务端获取客户端上传的文件在客户端所存储的路径,那你可以这么做,用一个隐藏域记录文件的路径,通过javascript读取要上传文件的路径,这个是很容易做到的。


Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐