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

本文介绍如何在JSF框架的Java应用中使用HTTP无FTP协议,将文件上传到远程服务器的特定文件夹。涉及Apache Commons FileUpload库的使用和POST请求示例,以解决跨应用共享文件问题。
摘要由CSDN通过智能技术生成

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

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

所有建议共享文件上传以发送文件的人都是错误的。它的目的是解析另一侧的多部分/表单数据请求,而不是在您一侧创建和发送多部分/表单数据请求。

也许应该更清楚地回答这个问题。不要期望这个模糊的问题能得到准确的答案!

我有两个共享路径的应用程序来上传文件,所以为了访问这些文件,我决定将共享文件(如图像和文本)上传到第三个服务器。第一个应用程序应该将文件上载到此远程服务器,第二个应用程序应该从中读取文件。所以这个解决方案的难点是使用HTTP将文件上传到第三个服务器(实际上是远程服务器)。

首先考虑以下内容:1.HTTP服务器是否在"第三台服务器"上运行?2。你能在那里上传自定义代码吗?如果第一个问题的答案是"是",那么下面提供的答案将起作用。否则,首先您必须在这里安装Tomcat、Glassfish或其他HTTP服务器,然后按照您的方式工作。

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

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

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

远程服务器上的特定文件夹。我的应用程序在我的服务器上运行,文件主机不在我的应用程序运行的位置。

如我所说,当您通过HTTP上传时,远程服务器/文件主机必须提供用于指定远程目标的API。

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

使用以下代码:

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);

我应该在哪里添加远程服务器URL?在您的代码中,"a.txt"是什么?你能给我解释更多吗?

在您的服务器URL中添加您的服务器URL…a.txt是一个文件,我发送了2个服务器

我使用了你的代码,但是没有移动,也没有异常抛出。你能指导我吗?我没有改变你上面的代码。谢谢

您可以使用httpclient。

以post作为方法发送文件。

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

制作

@Autowired

ServletContext c;

或取对象2

请你修改一下你的答案好吗?目前,代码很难阅读,而且还不清楚这是如何解决问题的。请更好地解释你的答案。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值