Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java grails-如何强制下载带有扩展名的文件_Java_Grails_Download - Fatal编程技术网

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关闭扩展名的原因。不过,我可能错了。