Java 如何使用MultipartEntity在servlet上获取实体?
如果我像这样将文件上载到servlet:Java 如何使用MultipartEntity在servlet上获取实体?,java,android,servlets,Java,Android,Servlets,如果我像这样将文件上载到servlet: HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://www.tumblr.com/api/write"); try { MultipartEntity entity = new MultipartEntity(); entity.addPart("type", new StringBody("photo"))
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.tumblr.com/api/write");
try
{
MultipartEntity entity = new MultipartEntity();
entity.addPart("type", new StringBody("photo"));
entity.addPart("data", new FileBody(image));
httppost.setEntity(entity);
HttpResponse response = httpclient.execute(httppost);
}
catch (ClientProtocolException e) {}
catch (IOException e) {}
如何在servlet中检索内容
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException
{
request.???
}
- 我正在使用GoogleAppServer作为我的ServletAPI
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException
{
String partName = "type"; // or "data"
Part part = request.getPart(partName);
// read your StringBody type
BufferedReader reader = new BufferedReader( new InputStreamReader(part.getInputStream()));
String line ="";
while((line=reader.readLine())!=null)
{
// do Something with a line
System.out.println(line);
}
// or with a binary Data
partName="data";
part = request.getPart(partName);
// read your FileBody data
InputStream is = part.getInputStream();
// do Something with you byte data
is.read();
// is.read(b);
// ..
}
Iterator<Part> iterator = request.getParts().iterator();
Part parts = null;
while (iterator.hasNext()) {
parts = (Part) iterator.next();
//rest of the code block removed
}
}
Iterator Iterator=request.getParts().Iterator();
Part=null;
while(iterator.hasNext()){
parts=(Part)迭代器.next();
//代码块的其余部分已删除
}
}
由于getPart()/getParts()仅在Servlet 3.0版本开始工作,因此您将确保使用支持的Servlet容器和/或升级当前的Servlet容器。支持3.0的某些服务器或Servlet容器:
只需搜索Stackoverflow-数百个问题/答案,包括文件上传+servlet,已经存在!Read@home第一步是搜索网站和本网站,你应该假设这里询问的人已经这样做了。我认为让我自己去搜索不是这个网站的精神所在。所以,至少你应该发布任何链接,而不是只评论go search。我使用的是谷歌应用程序引擎,所以我不知道我是否可以使用Servlet 3.0或如何使用,但我会尝试查找有关它的详细信息。谢谢。GAE Servlet API版本是2.5,所以我想我不能使用它。但是谢谢。@Rami:我根据你的问题编辑了我的答案。如果您再次阅读,您会发现一个指向第三方库“ApacheCommonsFileUpload”的快速演示的链接,该库处理您的情况。享受!!