当我使用 Flash 调整大小和上传图像时,如何在 Servlet 中读取 JPEG 图像?
我的doPost()
方法中有它,但我找不到该文件。我无法得到它request.getParameter(...)
。
当我得到它request.getInputStream()
并将其写入文件时,我无法打开它。不知何故,JPEG编码已损坏。
当我使用 Flash 调整大小和上传图像时,如何在 Servlet 中读取 JPEG 图像?
我的doPost()
方法中有它,但我找不到该文件。我无法得到它request.getParameter(...)
。
当我得到它request.getInputStream()
并将其写入文件时,我无法打开它。不知何故,JPEG编码已损坏。
通过 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
在 servlet 中处理请求的更具体示例