0

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

我的doPost()方法中有它,但我找不到该文件。我无法得到它request.getParameter(...)

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

4

1 回答 1

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

也可以看看:

于 2012-10-12T02:14:33.160 回答