Java 从基于web的应用程序到linux服务器的文件上载

Java 从基于web的应用程序到linux服务器的文件上载,java,linux,upload,Java,Linux,Upload,在得知我将指向上传路径的机器是Linux机器之后,我的代码似乎无法工作 我的用例是,用户登录到web应用程序,选择要上载的文件,然后单击上载按钮。是否可以使用适当的ssh或scp库(如果有的话)直接从Java代码到Linux服务器执行此操作 编辑:这是我当前的代码 @Override public void fileTransfer(File uploadedFile, String fileName, String pathTemp) { File destFile = ne

在得知我将指向上传路径的机器是Linux机器之后,我的代码似乎无法工作

我的用例是,用户登录到web应用程序,选择要上载的文件,然后单击上载按钮。是否可以使用适当的
ssh
scp
库(如果有的话)直接从Java代码到Linux服务器执行此操作

编辑:这是我当前的代码

@Override
public void fileTransfer(File uploadedFile, String fileName, String pathTemp) {

        File destFile = new File( pathTemp + File.separator + fileName);
        try{
            FileUtils.copyFile(uploadedFile, destFile);

                    String getTempFile = destFile.toString();
                    String tempPath = getTempFile.replace("\\", "\\\\");
                    File tempFile = new File(tempPath); // 1st file
                    String tempFileName = tempFile.getName();
                    String fileSave = getUploadPathSave().replace("\\", "\\\\"); 
                    tempFile.renameTo(new File(fileSave + tempFileName));
        } catch (IOException ex) {
            System.out.println("Could not copy file " + fileName);
                    ex.printStackTrace();
        }
}

如果您的应用程序仅部署在一个地方(而不是大规模分发),最简单的方法是:

  • 在linux机器上创建samba共享

  • 将samba共享映射到windows计算机上的逻辑驱动器

  • 使用java函数进行常规文件复制


  • 注意:重命名在驱动器之间不起作用。您需要将输入流复制到输出流,或者更好地使用apache commons io函数进行复制。

    有不同的可能性:

  • 如果您可以在linux中创建一个共享目录并在windows下装载它(请参阅)。然后您可以像本地目录一样写入该目录。文件将转到linux服务器
  • 使用类似的库将文件从windows server上载到linux server

  • 你可以做一些事情:

    1->如果您可以对linux服务器进行编程,那么您可以制作一个程序,在端口上侦听用户请求,并将数据存储在文件中。然后您可以将文件发送到服务器的该端口

    2->另一种方法是,您可以使用某种脚本创建到服务器的ssh连接,然后您可以通过ssh添加文件,但在这里,您的java程序将没有用处

    我个人使用自己的程序在同一网络中的两台机器之间共享文件。
    如果它对您有用,您可以使用它:

    您是否将文件上载到运行web应用程序的服务器?它到底如何工作?错误消息是什么?SSH和SCP可能不适用于所有客户端环境。@RaviH应用程序服务器是Windows server 2008计算机,而上载文件的服务器是Windows server 2008计算机一台单独的Linux机器。@akhikhl我发布了我当前的代码。我没有使用
    ssh
    scp
    ,因为我认为这台机器不是Linux机器。