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

Gen*_* S. 2 java android file-upload apache-commons

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

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

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

Yon*_*oni 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);
Run Code Online (Sandbox Code Playgroud)
  • 我认为你不需要内容处理部分,它用于另一个方向(当浏览器下载文件并需要知道如何处理它时).
  • getParams.setParameter是可选的.您也可以直接在HttpClient实例上进行设置.
  • AFAIK,设置请求标头的顺序是无关紧要的,只要它们在您设置请求主体之前都已设置.

  • 有人需要吻你 你不知道它试图获得这个荒谬的"简单"答案是多么痛苦.我要废弃我的问题并重写它,以免它占用大量空间并弄得一团糟......再次感谢. (2认同)