在得知我将指向上传路径的机器是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();
}
}
答案 0 :(得分:0)
如果您的应用仅部署在一个地方(非大规模发布),最简单的方法是:
在linux机器上创建samba共享
将samba共享映射到Windows机器上的逻辑驱动器
使用java函数进行常规文件复制。
注意: renameTo在驱动器之间不起作用。您需要将输入流复制到输出流,或者更好的是,使用apache commons-io函数。
答案 1 :(得分:0)
有不同的可能性:
答案 2 :(得分:0)
您可以执行某些操作:
1->如果可以对Linux服务器进行编程,则可以制作一个程序来侦听端口上的用户请求,并将数据存储在文件中。然后,您可以将文件发送到服务器的该端口。
2->另一种方法是,您可以使用某种脚本来建立与服务器的ssh连接,然后可以仅通过ssh添加文件,但是在这里Java程序将无用。
我个人使用自己的程序在同一网络中的两台计算机之间共享文件。 如果对您有用,可以使用它:https://github.com/RishabhRD/xshare