【问题标题】:vfs2 - sftp File Corrupted During Downloadvfs2 - sftp 文件在下载过程中损坏
【发布时间】:2016-09-13 23:38:48
【问题描述】:

我正在使用vfs2通过sftp下载文件。

.txt.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;
}

【问题讨论】:

    标签: download sftp apache-commons-vfs


    【解决方案1】:

    原来 openSSH 正在下载部分文件。每次我尝试下载文件时都会丢失一些字节。 我用 freeSSHd 替换了 openSSH,它解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-14
      • 2015-07-16
      • 2017-12-04
      • 2019-01-28
      • 1970-01-01
      • 1970-01-01
      • 2017-09-13
      相关资源
      最近更新 更多