通过Java lib Apache Commons上传文件的简明示例

[编辑]我删除了我的错综复杂且严重错误的问题,这样就不会影响下面非常简洁和正确的答案。 鉴于(令人惊讶的)难以找到一个执行这个令人难以置信的常见任务的在线示例,我希望Yoni能够为他的回应获得更多的优势。

所以……问题简而言之……

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

从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,设置请求标头的顺序是无关紧要的,只要它们在您设置请求主体之前都已设置。