在得知我将上传路径指向的机器是 Linux 机器后,我的代码似乎无法工作。
我的用例是,用户登录到网络应用程序,选择要上传的文件,然后单击上传按钮。是否可以使用适当的 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 函数进行常规文件复制。
注意: renameTo 在驱动器之间不起作用。您需要将输入流复制到输出流,或者更好的是,使用 apache commons-io 函数。
我是一名优秀的程序员,十分优秀!