7

我需要使用 java 将图像和 txt 文件从我的应用程序上传到远程服务器(只是 http 没有 ftp)。我的应用程序在 jsf 框架中。我搜索但没有找到合适的东西。有人可以指导我吗?事实上,我应该将文件上传到远程服务器的特殊文件夹。我有两个具有共享路径的应用程序来上传文件,因此为了访问这些文件,我决定将共享文件(如图像和文本)上传到第三台服务器。第一个应用程序应该将文件上传到这个远程服务器,第二个应用程序应该从中读取它们。所以我在这个解决方案中最难的部分是使用 http 将文件上传到第三台服务器(实际上是远程服务器)。

4

6 回答 6

6

要将文件上传到特定文件夹,您的服务器 API 必须支持该功能。

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

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

于 2012-05-23T11:48:58.157 回答
3

看看 apache commons-fileupload您可以在此处找到示例代码。

于 2012-05-23T11:47:03.920 回答
2

使用以下代码:

        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); 
于 2012-05-23T11:47:28.197 回答
0

您可以使用 HttpClient。

POST使用作为方法发送文件。

于 2012-05-23T11:39:53.520 回答
0

根据您的要求,您需要发送多个图像和文本文件。所以 HTTP 多部分文件上传似乎是一个合适的解决方案。您可以从这里获得更多信息。

于 2012-05-23T11:50:04.233 回答
-4

制作

@Autowired
ServletContext c;

或采取对象

byte[] bytes = file.getBytes();

String UPLOAD_FOLDEdR=c.getRealPath("/images");  
Path path = Paths.get(UPLOAD_FOLDEdR +"/"+ file.getOriginalFilename());
Files.write(path, bytes);
System.out.println(path);
String Pic_Name =file.getOriginalFilename();
于 2018-01-27T18:38:45.957 回答