Java 从POST请求中检索图像
我正试图向我的Javaservlet(托管在AmazonEC2上)发送一张图片,以便稍后将其传输到AmazonS3,并想知道如何从post请求中检索图像 上传代码 请求通过iOS RestKit API发送,如下所示(pic.imageData是NSData类型): 解析代码存根 以下是我在Java servlet上解析其他2个参数的方式:Java 从POST请求中检索图像,java,servlets,Java,Servlets,我正试图向我的Javaservlet(托管在AmazonEC2上)发送一张图片,以便稍后将其传输到AmazonS3,并想知道如何从post请求中检索图像 上传代码 请求通过iOS RestKit API发送,如下所示(pic.imageData是NSData类型): 解析代码存根 以下是我在Java servlet上解析其他2个参数的方式: double dateTaken = Double.parseDouble(req.getParameter("dateTaken")); double d
double dateTaken = Double.parseDouble(req.getParameter("dateTaken"));
double dateUploaded = Double.parseDouble(req.getParameter("dateUploaded"));
问题:
问题是:如何在我的服务器上检索和解析图像?类似于此,使用:
请参阅API参考文档以确定下一步的操作。Servlet 3.0支持读取多部分数据。
Servlet 3.0
中的MutlipartConfig支持如果使用@MutlipartConfig
注释对servelt进行注释,则容器负责通过
HttpServletRequest.getParts()
HttpServletRequest.getPart("name");
参考文献:
文章。从我从的收集到的信息来看,这应该是一条由多个部分组成的消息。谢谢,我正在尝试将commons fileupload安装到java,以便进行测试。好的,我会马上给你回复。好的,我成功导入了commons,但我收到以下警告:List是原始类型。对泛型类型列表的引用应参数化。迭代器是一种原始类型。对泛型类型迭代器的引用应该参数化。我的建议可能有点离题,但您也可以选择base64编码图像。虽然效率不高,但他们为我服务得很好。您正在使用哪个servlet容器?@AnupamSaini我对服务器编程非常陌生,因此简单地使用restkit似乎是最简单的解决方案。@RameshPVK apache tomcat ibelieve@RameshPVK我的ec2上的实例图像显示:AMI:ElasticBeanstalk-Tomcat6-64bit-201202071737(AMI-d5ec3cbc)似乎我不能使用这种方法,因为我运行的是tomcat 6,根据这个网站:我只有2.x Serlvets,那么你应该使用commons apache文件upload@Lion:这也是一种仅适用于最新容器的方法:)不是每个人都那么幸运,而lib方法相对简单,前后兼容。如果您有一个支持Servlet 3+的容器,那么我肯定会选择它。
// or @SuppressWarnings("unchecked")
@SuppressWarnings("rawtypes")
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
if (ServletFileUpload.isMultipartContent(request)) {
final FileItemFactory factory = new DiskFileItemFactory();
final ServletFileUpload upload = new ServletFileUpload(factory);
try {
final List items = upload.parseRequest(request);
for (Iterator itr = items.iterator(); itr.hasNext();) {
final FileItem item = (FileItem) itr.next();
if (!item.isFormField()) {
/*
* TODO: (for you)
* 1. Verify that file item is an image type.
* 2. And do whatever you want with it.
*/
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
}
}
HttpServletRequest.getParts()
HttpServletRequest.getPart("name");