我正在使用
<input type="file" name="file" value="">浏览要上传的图像文件。但是当我使用
String imageUrl = request.getParameter("file");
out.println("logofile" + imageUrl);在操作页面上,它只显示图像名称,而不显示完整的绝对路径。当我尝试使用
File file = new File(imageUrl);它抛出以下异常
java.io.FileNotFoundException: apple-logo.jpg (The system cannot find the file specified) 我做错了什么?
发布于 2011-05-12 20:08:56
问题是,您试图通过get浏览器发送的名称从get服务器的本地磁盘文件系统中获取文件内容。这是完全错误的。只有Internet Explorer才会显示它发送完整路径而不仅仅是名称的错误。然而,完整路径对您来说是无用的,因为does服务器通常无法访问客户端的本地磁盘文件系统。
相反,您应该从get浏览器发送的请求正文中获取真正的文件内容。为此,您需要确保您的HTML表单具有method="post"和enctype="multipart/form-data"属性。
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" />
</form>然后,在侦听/upload的URL模式的servlet的doPost()方法中,使用HttpServletRequest#getParts(),或者当您仍然使用Servlet2.5或更早的版本时,使用Apache Commons FileUpload来处理多部分/表单数据请求的各个部分。它将在通常的请求参数中包含上传的文件。
另请参阅:
发布于 2011-05-12 15:49:02
你可以通过用户检查here到用户Apache Commons文件上传。
https://stackoverflow.com/questions/5974844
复制相似问题