我有以下代码
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”的字符串。
我希望用户下载该文件,而不是从浏览器中查看。它适用于我可以下载的chrome,文件将显示“另存为”“contains_some_long_string_with_id.pdf”
但在firefox(最新版本)中..文件名仅限于“contains_some_long”(最后没有pdf扩展名)。
如何解决这个问题?该文件可以是csv,pdf,text,html,zip,pdf或其他文件格式。
谢谢
答案 0 :(得分:1)
内容类型字符串可能需要是您正在下载的文档的MIME类型。
例如。对于PDF,它可能应该是“application / pdf”
答案 1 :(得分:1)
你可能有空格或特殊字符让Firefox感到困惑。文件名应该是带引号的字符串:
response.setHeader "Content-disposition", "attachment; filename=\"${fileName}\"";