Java 从基于web的应用程序到linux服务器的文件上载
在得知我将指向上传路径的机器是Linux机器之后,我的代码似乎无法工作 我的用例是,用户登录到web应用程序,选择要上载的文件,然后单击上载按钮。是否可以使用适当的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
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();
}
}
如果您的应用程序仅部署在一个地方(而不是大规模分发),最简单的方法是:
注意:重命名在驱动器之间不起作用。您需要将输入流复制到输出流,或者更好地使用apache commons io函数进行复制。有不同的可能性:
你可以做一些事情: 1->如果您可以对linux服务器进行编程,那么您可以制作一个程序,在端口上侦听用户请求,并将数据存储在文件中。然后您可以将文件发送到服务器的该端口 2->另一种方法是,您可以使用某种脚本创建到服务器的ssh连接,然后您可以通过ssh添加文件,但在这里,您的java程序将没有用处 我个人使用自己的程序在同一网络中的两台机器之间共享文件。
如果它对您有用,您可以使用它:您是否将文件上载到运行web应用程序的服务器?它到底如何工作?错误消息是什么?SSH和SCP可能不适用于所有客户端环境。@RaviH应用程序服务器是Windows server 2008计算机,而上载文件的服务器是Windows server 2008计算机一台单独的Linux机器。@akhikhl我发布了我当前的代码。我没有使用
ssh
或scp
,因为我认为这台机器不是Linux机器。