文件从基于Web的应用程序上传到Linux服务器

时间:2014-01-09 08:28:39

标签: java linux upload

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

我的用例是,用户登录Web应用程序,选择要上传的文件,然后单击上传按钮。是否可以使用适当的sshscp库直接从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();
        }
}

3 个答案:

答案 0 :(得分:0)

如果您的应用仅部署在一个地方(非大规模发布),最简单的方法是:

  1. 在linux机器上创建samba共享

  2. 将samba共享映射到Windows机器上的逻辑驱动器

  3. 使用java函数进行常规文件复制。

  4. 注意: renameTo在驱动器之间不起作用。您需要将输入流复制到输出流,或者更好的是,使用apache commons-io函数。

答案 1 :(得分:0)

有不同的可能性:

  1. 如果您可以在linux中创建一个共享目录并将其挂载到windows下(请参阅Samba。然后您可以像本地目录一样写入该目录。文件将转到linux服务器。
  2. 使用像Jsch这样的库将文件从Windows服务器上传到linux服务器。

答案 2 :(得分:0)

您可以执行某些操作:

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

2->另一种方法是,您可以使用某种脚本来建立与服务器的ssh连接,然后可以仅通过ssh添加文件,但是在这里Java程序将无用。

我个人使用自己的程序在同一网络中的两台计算机之间共享文件。 如果对您有用,可以使用它:https://github.com/RishabhRD/xshare