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