2017-03-28 15 views
0

私のPlayframework 2.5.0アプリケーションは一時的に作成されたzipファイルを提供する必要があります。 私はzipファイルを/ tmpディレクトリに作成し、問題なく実行します(私はここを開いて、そこに含まれているファイルを展開できます)。Playframework 2.5.0:サーバー側で生成されたzipファイルを提供できません

ただし、クライアントに送信されたファイルは切り捨てられているようで、開くことはできません。

String tempPath = "/tmp/" + label + ".zip"; 

File zipFile = new File(tempPath); 
zipFile.deleteOnExit(); 
ZipOutputStream zos = null; 

try { 
    zos = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile))); 

    for (/* loops through files to zip */) { 
     InputStream is = methodToGetTheDocument(); 
     ZipEntry zipEntry = new ZipEntry(document.getLabel()); 
     zos.putNextEntry(zipEntry); 
     byte[] bytes = new byte[2048]; 
     int count = is.read(bytes); 
     while (count > -1) { 
      zos.write(bytes, 0, count); 
      count = is.read(bytes); 
     } 
     is.close(); 
     zos.closeEntry(); 
    } 
    return ok(zipFile); 
} catch (Exception e) { 
    return badRequest("Bad request"); 
} finally { 
    try { 
     zos.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

私は古典的な結果オブジェクトを返します...何が問題ですか?

+0

前に「近い」zos.close()を使用してzipファイルを持っています7file.zip "));'? – Salem

答えて

2

あなたはzipファイルを変更していない場合は、なぜちょうど `(新java.io.Fileの(" /パス/ /にOKを返していない、あなたreturn ok(zipFile)

関連する問題