将调整大小的图像(通过闪存)上传到servlet

时间:2012-10-10 23:10:24

标签: flash servlets file-upload

当我调整大小并使用Flash上​​传它时,如何在Servlet中读取JPEG图像?

我在doPost()方法中使用它,但找不到该文件。我无法通过request.getParameter(...)获得它。

当我使用request.getInputStream()并将其写入文件时,我无法打开它。不知何故,JPEG编码已损坏。

1 个答案:

答案 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

另见: