2014-12-04 46 views
0

我搜索了很多,没有为我工作。问题在于文件显示在浏览器中。它包含JSON,但是是一个.locx文件(需要APP)。没有不是我的APP,所以我不能改变这一点。我已经测试了很多内容类型和编码的变体,但没有任何帮助。这是我的守则。Force with PHP下载 - 服务器配置?

<?php 
    function DownloadFile($file) { 
     if(file_exists($file)) { 
      header('Content-Description: File Transfer'); 
      header('Content-Type: application/octet-stream'); 
      header('Content-Disposition: attachment; filename='.basename($file)); 
      header('Content-Transfer-Encoding: binary'); 
      header('Expires: 0'); 
      header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
      header('Pragma: public'); 
      header('Content-Length: ' . filesize($file)); 
      ob_clean(); 
      flush(); 
      readfile($file); 
      exit; 
     } 

    } 

    DownloadFile('storage/3-3-2.locx'); 
?> 

感谢您的阅读!

// UPDATE

它在另一台服务器上,并写在注释的脚本工作得很好,但我必须在服务器配置改变,它也为我的作品?

+3

您的代码适用于Chrome和Firefox浏览器 – oliakaoil 2014-12-04 15:04:22

+1

您使用哪种浏览器进行测试?例如,我发现Internet Explorer缓存Content-Type标题,并且必须重新启动才能以不同方式处理内容。 – Phylogenesis 2014-12-04 15:04:26

+1

也适用于Apache/FreeBSD,PHP 5.4。我建议可能看看你的服务器配置和MIME类型.... – 2014-12-04 15:08:44

回答

0

它发生,而上传文件。

将上传的文件编码从utf8更改为iso时。