【问题标题】:File transfer is canceled during REST downloadREST 下载期间文件传输被取消
【发布时间】:2014-03-14 21:47:32
【问题描述】:

当我尝试使用 REST 下载文件时遇到了一点问题。

这是我的功能:

@GET
@Produces(MediaType.APPLICATION_OCTET_STREAM)
@Path("{directory: (([^/]+[/])+)[^/]+}")
public Response getFile(@PathParam("directory") String directory)
{

    Response responseFile = null;
    try
    {
        /*String tmpFileName = "REST_FTP_TMPFile_"+ Math.random();
               tmpFileName = tmpFileName.replace(".", "");

        File tmpFile = new File(tmpFileName);
        tmpFile.createNewFile();
        //*/

        String filename = directory.substring(directory.lastIndexOf("/")+1, directory.length());
        File tmpFile = File.createTempFile("REST_FTP_TMPFile_", null);

        directory = StringEscapeUtils.unescapeHtml4(directory);

        this.client.getFile(directory, tmpFile);

        System.out.println("size : " + tmpFile.length());            

        responseFile = Response.ok(tmpFile, MediaType.APPLICATION_OCTET_STREAM)
                .header("Content-length", tmpFile.length())
                .header("Content-Disposition","attachment; filename="+filename+"")
                .build();

        //A voir quand on peut le supprimer...
        //tmpFile.delete();
    }
    catch (IOException ex)
    {
        Logger.getLogger(GetResource.class.getName()).log(Level.SEVERE, null, ex);
    }
    return responseFile;
}

客户端的getFile函数使用libapache方法:

public boolean getFile(String pathname, File file) throws IOException
{
    OutputStream output;
    output = new FileOutputStream(file);

    System.out.println("Wanted pathname : "+pathname);

    boolean status = this.client.retrieveFile("/"+pathname, output);
    if(status)
    {
        output.close();
        return status;
    }
    else
    {
        output.close();
        throw new IOException("Cannot retrieve the file : " + pathname);
    }
}

当我尝试下载时,我的网络浏览器显示下载已取消:

我真的不知道我做错了什么,到目前为止,网络上没有任何东西可以帮助我(已经 2 小时了..)

【问题讨论】:

    标签: java rest ftp gateway


    【解决方案1】:

    我发现问题出在哪里,FTP传输应该是二进制模式..

    【讨论】:

      猜你喜欢
      • 2019-03-09
      • 2014-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-14
      • 1970-01-01
      相关资源
      最近更新 更多