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