当我尝试将UploadedFile
对象内容上传到 FTP 服务器
[其值来自 [t:inputFileUpload] 组件]
我的 Web 浏览器中的加载指示器播放并且不会停止
当调试时我发现我的来冻结在一行
ftp.storeFile(destFilePath, inputStream);
但是我尝试 3方法(显示在代码中)上传
但仍然所有方法都不起作用
UploadedFile 到 FTPServer 的控制器方法
public static String uploadFileToFTPServer
(String ftpServerIP, String userName, String password,UploadedFile uploadedFile) {
String destFilePath = null;
FTPClient ftp = new FTPClient();
ftp.addProtocolCommandListener(new PrintCommandListener(
new PrintWriter(System.out)));
try {
// Method 1
byte[] fileBytesContent = uploadedFile.getBytes();
ByteArrayInputStream inputStream = new ByteArrayInputStream(fileBytesContent);
// Method 2
// InputStream inputStream = uploadedFile.getInputStream();
// Method 3
// InputStream inputStreamContent = uploadedFile.getInputStream();
// BufferedInputStream inputStream = new BufferedInputStream(inputStreamContent);
destFilePath = uploadedFile.getName() ;
// ftp server
ftp.connect(ftpServerIP);
ftp.login(userName, password);
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
ftp.setFileTransferMode(FTPClient.BINARY_FILE_TYPE);
ftp.storeFile(destFilePath, inputStream);
inputStream.close();
ftp.logout();
} catch (Exception e) {
destFilePath = null;
e.printStackTrace();
} finally {
try {
ftp.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
return destFilePath;
}
注意
冻结时我检查我的FTP服务器
并查看文件名但其大小=零!
然后几秒钟后这个文件就会消失