当我调整大小并使用Flash上传它时,如何在Servlet中读取JPEG图像?
我在doPost()
方法中使用它,但找不到该文件。我无法通过request.getParameter(...)
获得它。
当我使用request.getInputStream()
并将其写入文件时,我无法打开它。不知何故,JPEG编码已损坏。
答案 0 :(得分:0)
通过HTTP的文件上传请求通常使用multipart/form-data
请求编码发送,不使用application/x-www-form-urlencoded
编码发送,正如您在getParameter()
尝试时所期望的那样。 getInputStream()
为您提供整个请求正文,这也不是您想要的。您基本上需要将其解析为可用部分并从中提取上传的文件。
如果您已经使用Servlet 3.0(已经推出了近3年),那么只需使用getPart()
。
Part uploadedFile = request.getPart("fieldName");
InputStream uploadedFileContent = uploadedFile.getInputStream();
// Now just write it to an arbitrary OutputStream the usual way.
或者,如果您仍然使用Servlet 2.5或更早版本,请抓住Apache Commons FileUpload。
multipart/form-data
请求的更具体示例