如何使用java将文件上传到http远程服务器?

how to upload file to http remote server using java?

本问题已经有最佳答案,请猛点这里访问。

我需要上传图像和TXT文件从我的应用程序到一个远程服务器(只是HTTP无FTP)使用Java。我的应用程序在JSF框架中。我搜索过,但没有找到合适的东西。有人能指导我吗?实际上,我应该将文件上传到远程服务器的特殊文件夹。我有两个共享路径的应用程序来上传文件,所以为了访问这些文件,我决定将共享文件(如图像和文本)上传到第三个服务器。第一个应用程序应该将文件上载到此远程服务器,第二个应用程序应该从中读取文件。所以这个解决方案的难点是使用HTTP将文件上传到第三个服务器(实际上是远程服务器)。


要将文件上载到特定文件夹,您的服务器API必须支持这一点。

服务器端接收上传的文件,可以使用http://commons.apache.org/fileupload/

客户端发送文件上传请求,可以使用https://hc.apache.org/httpcomponents-client-ga/index.html


看看ApacheCommons文件上传。您可以在这里找到示例代码。


使用以下代码:

1
2
3
4
5
6
7
8
        byte[] data = bos.toByteArray();//convert ur file into byte[]
        HttpClient httpClient = new DefaultHttpClient();//Client
        HttpPost postRequest = new HttpPost(YOUR_SERVER_URL);//Post Request to specified URL
        ByteArrayBody bab = new ByteArrayBody(data,"a.txt");
        MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);// Multipart data
        reqEntity.addPart("uploadingFile", bab); //adding data to request entity
        postRequest.setEntity(reqEntity);//adding request entity to post request
        HttpResponse response = httpClient.execute(postRequest);


您可以使用httpclient。

以post作为方法发送文件。


根据您的要求,您需要发送多个图像和文本文件,因此HTTP多部分文件上载似乎是一个合适的解决方案。您可以从这里获得更多有关此问题的信息:http://commons.apache.org/fileupload/using.html


制作

1
2
@Autowired
ServletContext c;

或取对象

2