Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java将文件上载到远程服务器_Java_Servlets_File Upload_Httprequest - Fatal编程技术网

使用Java将文件上载到远程服务器

使用Java将文件上载到远程服务器,java,servlets,file-upload,httprequest,Java,Servlets,File Upload,Httprequest,我正在写一个java自动化程序。此自动化将位于其自己的服务器上,并对单独的应用程序服务器进行rest调用 我的问题是,在某些情况下,我需要将某些文件上载到应用服务器上的特定文件夹 我想把这个文件上传过程的权利,到自动化之前,任何电话。应用服务器被设置为一个http服务器(ip地址和凭据每天都在变化) 我做了一些研究,认为使用JavaHTTPServlet来实现这一点是可以做到的——但是我个人以前没有使用servlet的经验,我发现我并不认为我所寻找的正是示例 让我知道这是一个可行的任务,或者如果

我正在写一个java自动化程序。此自动化将位于其自己的服务器上,并对单独的应用程序服务器进行rest调用

我的问题是,在某些情况下,我需要将某些文件上载到应用服务器上的特定文件夹

我想把这个文件上传过程的权利,到自动化之前,任何电话。应用服务器被设置为一个http服务器(ip地址和凭据每天都在变化)

我做了一些研究,认为使用JavaHTTPServlet来实现这一点是可以做到的——但是我个人以前没有使用servlet的经验,我发现我并不认为我所寻找的正是示例


让我知道这是一个可行的任务,或者如果一个更好的方法可以做?非常感谢您提供如何执行此操作的任何链接或示例。

为了澄清问题:您必须有一个服务器端组件来处理文件上载,如果可能的话,我现在将所有文件存储在世界各地的随机服务器上。处理该文件的组件可以是一个Javaservlet(例如,一个简单的Jersey后端)——但对于将该文件存储在我的服务器上的某个位置来说,这将是一个很大的开销。我建议您使用PHP来完成此任务

为此,您可以使用以下内容:

<?php 
    header('Access-Control-Allow-Origin: *');
    $path = $_POST['path'];
    $name = $_FILES['file']['name'];
    $info = pathinfo($name);
    $ext = $info['extension']; // get the extension of the file
    $target = $path.$name;
    move_uploaded_file( $_FILES['file']['tmp_name'], $target);
    http_response_code(200);
?>
然后像这样使用它:

package com.dominikangerer.q29679878;

import java.io.File;

public class Main {

    public static void main(String[] args) {
        new HttpRequest("http://example.com/storeFile.php", "POST")
        .part("file", "file.jpg", new File("/your/file.jpg"))
        .part("path", "/the/path/it/should/be/stored/on/the/server/")
        .code();
    }

}
您可以在这里找到此示例(也可以找到上面发布的库中的确切文件):

摘要

  • 如果没有处理文件的服务器端组件,是不可能的
  • PHP将是实现这种解决方案的最简单方法——不需要servlet,servlet也需要应用服务器(tomcat或类似的)和更多配置
  • 对于所有Http请求,只需在java中使用即可

  • 只需把事情弄清楚-你将有一个设置:一个外部自动化-和一个http服务器。自动化将把文件上传到http服务器?http服务器有可能运行PHP?因为你还需要一些东西来存储文件。我正在试着找到一种方法来做到这一点,而不改变http服务器端的任何内容问题是你需要一些在服务器上处理文件的东西——因为没有它你无法从本地机器上存储东西。那么——你在http服务器上有PHP可用吗?谢谢,这看起来应该会有帮助如果你需要其他帮助——让我知道。
    package com.dominikangerer.q29679878;
    
    import java.io.File;
    
    public class Main {
    
        public static void main(String[] args) {
            new HttpRequest("http://example.com/storeFile.php", "POST")
            .part("file", "file.jpg", new File("/your/file.jpg"))
            .part("path", "/the/path/it/should/be/stored/on/the/server/")
            .code();
        }
    
    }