我有以下代碼Grails的 - 如何強制下載文件,其擴展
def fileDoc = new File(document.documentLocation);
if(fileDoc.exists()){
// force download
def fileName = fileDoc.getName();
response.setContentType("application/octet-stream")
response.setHeader "Content-disposition", "attachment; filename=${fileName}" ;
response.outputStream << fileDoc.newInputStream();
response.outputStream.flush();
return true;
}
documentLocation包含字符串,如 「C:\ mydoc \ contains_some_long_string_with_id.pdf」 爲例。
我希望用戶下載文件,而不是從瀏覽器中查看它。它可以很好地工作在鉻我可以下載和文件將顯示「另存爲」「contains_some_long_string_with_id.pdf」
但在Firefox(最新之一)..文件名是殘廢爲「contains_some_long」只(沒有pdf最後的延期)。
如何解決這個問題?該文件可以是csv,pdf,文本,html,zip,pdf或其他文件格式。
謝謝
但用戶可以放任何格式的任何文件。它在Chrome瀏覽器上運行良好,但在Firefox上文件名將被損壞 – nightingale2k1 2010-09-16 07:56:42
您的代碼可以在下載時檢查文件擴展名並設置正確的文件類型嗎?我認爲這可能是firefox打破擴展的原因。但我可能是錯的。 – 2010-09-17 00:10:51