2010-09-13 39 views
2

我已经删除了我的错综复杂的问题,使其不会减损下面非常整洁和正确的答案。鉴于找到一个在线示例来完成这项令人难以置信的共同任务的难度(令人惊讶),我希望Yoni的回应能够得到更多的提升。通过Java库上传文件的简明示例Apache Commons

所以......一言以蔽之问题...

如何使用Apache.Commons将文件上载到某些目标。我在Android中使用它并上传到PHP脚本,但显然它可以从任何Java程序和任何基于HTTP的监听程序工作。

回答

6

MultipartRequestEntity的API:

File f = new File("/path/fileToUpload.txt"); 
PostMethod filePost = new PostMethod("http://host/some_path"); 
Part[] parts = { 
    new StringPart("param_name", "value"), 
    new FilePart(f.getName(), f) 
}; 
filePost.setRequestEntity(
    new MultipartRequestEntity(parts, filePost.getParams()) 
); 
HttpClient client = new HttpClient(); 
int status = client.executeMethod(filePost); 
  • 我不认为你需要的内容处置一部分,用于另一个方向(当浏览器下载文件,并需要知道如何处理它)。
  • getParams.setParameter是可选的。您也可以直接在HttpClient实例上进行设置。
  • AFAIK,设置请求头的顺序是无关紧要的,只要它们在你设置请求体之前全部设置完成。
+2

有人需要吻你。你不知道它试图得到这个可笑的“简单”答案是多么痛苦。我要废弃我的问题并重写它,以免它占用大量空间并且弄得一塌糊涂......再次感谢。 – 2010-09-13 08:18:00

相关问题