0
我嘗試向客戶端發送CSV數據。發送文件到客戶端Java播放
以下是我如何繼續: 客戶端:ajax調用服務器來獲取文件。
$.ajax({
url:"/csv/"+source,
method:'post',
data:JSON.stringify(json),
contentType: "application/json; charset=utf-8"
});
服務器端:生成該文件,然後將其發送回客戶端。
File file = CSVGenerator.generateFromJson(source, request().body().asJson());
response().setHeader("Content-Lenght", String.valueOf(file.length()));
response().setHeader("Content-Disposition", "attachment; filename=\""+file.toString()+"\"");
return ok(file).as("text/csv");
我嘗試了很多回報。例如我嘗試這樣做:
return ok(new FileInputStream(file)).as("text/csv");
我也試着像許多標題:
response().setContent("text/csv");
或
response().setHeader("Content-Type","text/csv");
,而不是.as("text/csv")
客戶端得到一個良好的響應頭,數據很好,但從不開始下載。
我錯過了什麼?
@EoiFirst你應該寫的語言的名字它是怎樣來寫。就像你會爲一個人的名字,品牌或其他任何東西一樣。話雖如此,客戶端上發生了什麼_does_?我看到的唯一突出之處是'Content-Length'拼寫錯誤。 –
感謝您的提示。長度確實錯誤,但沒有改變任何東西。在客戶端上什麼都沒有發生。我可以看到響應沒問題,但沒有開始下載 – EoiFirst
簡單地說:'return ok(file);',你試過了嗎? – Aerus