0
Я использую vfs2
для скачивания файла через sftp
.vfs2 - sftp Файл поврежден во время загрузки
и .xml
файлы загружаются корректно, но файлы .pdf
загружаются повреждаемыми файлами.
Ниже мой код:
Кто-нибудь увидеть, что я делаю неправильно?
import org.apache.commons.vfs2.*;
public void downloadFile(HttpServletResponse response, HttpServletRequest request, String localFilePath, String fileName) throws Exception
{
OutputStream outStream = null;
StandardFileSystemManager manager = new StandardFileSystemManager();
boolean success = false;
String remoteFilePath = localFilePath.replaceAll("^[a-zA-Z]:", "");
try{
manager.init();
FileObject remoteFile = manager.resolveFile(createConnectionString(remoteFilePath), createDefaultOptions());
InputStream istream = remoteFile.getContent().getInputStream();
String file = request.getParameter("fileName");
response.setHeader("Content-Disposition", "attachment; filename=\"" + file + "\"");
response.setContentType("APPLICATION/OCTET-STREAM");
outStream = response.getOutputStream();
int len;
byte[] buffer = new byte[1024];
while ((len = istream.read(buffer)) != -1) {
outStream.write(buffer, 0, len);
}
outStream.flush();
outStream.close();
istream.close();
long size = remoteFile.getContent().getSize();
success = remoteFile.exists() && size == remoteFile.getContent().getSize();
}
catch (Exception e) {
throw new RuntimeException(e);
} finally {
manager.close();
}
}
public String createConnectionString(String remoteFilePath) {
return "sftp://" + this.username + ":" + this.password + "@" + hostName + "/" + remoteFilePath;
}