Java grails-如何强制下载带有扩展名的文件
我有以下代码Java grails-如何强制下载带有扩展名的文件,java,grails,download,Java,Grails,Download,我有以下代码 def fileDoc = new File(document.documentLocation); if(fileDoc.exists()){ // force download def fileName = fileDoc.getName(); response.setContentType("application/octet-stream") response.setHeader "Conten
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;
}
def fileDoc=新文件(document.documentLocation);
如果(fileDoc.exists()){
//强制下载
def fileName=fileDoc.getName();
response.setContentType(“应用程序/八位字节流”)
response.setHeader“内容处置”、“附件;文件名=${filename}”;
response.outputStream内容类型字符串可能需要与正在下载的文档的MIME类型相同
例如,对于PDF,它可能应该是“application/PDF”您可能有空格或特殊字符使Firefox感到困惑。文件名应该是带引号的字符串:
response.setHeader "Content-disposition", "attachment; filename=\"${fileName}\"";
请参阅。但用户可以放置任何格式的文件。它在chrome上运行良好,但在firefox上,文件名将被禁用。您的代码可以检查文件扩展名并在下载时设置正确的文件类型吗?我想这可能是firefox关闭扩展名的原因。不过,我可能错了。