我看了一些网上的东西 有些疑问做下载 需要2个重要响应头header("Content-type: ".$ctype);
header('Content-Disposition: attachment; filename="'.$name.'"');
Content-type 是 mime
Content-Disposition  是 MIME 协议的扩展 用户可以看到 提示框里面的名字  然后保存的时候 也以这个名字保存我看到网上好多都是这么做的
function findType($type=""){
$ctype = "";
switch($type){
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
case "mp3": $ctype="audio/mpeg"; break;
case "wav": $ctype="audio/x-wav"; break;
case "mpeg":
case "mpg":
case "mpe": $ctype="video/mpeg"; break;
case "mov": $ctype="video/quicktime"; break;
case "avi": $ctype="video/x-msvideo"; break;
default: $ctype="application/force-download";
}
return $ctype = "application/octet-stream"; return $ctype;
}根据上传文件的 后缀去拼  Content-type: 头
但是
其只要写成
header("Content-type: application/octet-stream“);
header('Content-Disposition: attachment; filename="'.$name.'"'); 
就是 mime类型全部都是  application/octet-stream
然后再把文件名字  本身的文件名字就行了
(ps:如果没有header('Content-Disposition: attachment; filename="'.$name.'"') 保存的文件就是down.php的文件名字了)我不明白  第一种做法的好处是什么?????  第2中方法不是更简单吗
求解释.............

解决方案 »

  1.   

    个人喜好罢了(或者说是对下载不甚了了)我们知道,当浏览器收到了自己不能解释的数据时,会根据头在操作系统中寻找相关的软件并尝试在自己的窗口中展现
    如果收到的数据既不能自己解释,又没有合适的软件以图形化方式展现。就会出现下载对话框,让您下载后自行处理最简单的能说明问题的情况就是:你没有配置 php 文件的支持时,运行php程序就会出现下载对话框
      

  2.   

    不少软件是检测mimetype的,如果给出类型不正确,有些客户端会无所适从
    不要单纯认为所有人都只用浏览器下载然后在本地打开文件
    其实现在国外联网在线打开文件的情况比下载后打开更普遍
      

  3.   


    不明白呀
    不是把  响应头 设置成
    header('Content-Disposition: attachment;filename="'.$name.'"') 
    就肯定会以文件的方式下载吗?
    php 在哪配置才能出现对话框呀???
      

  4.   

    header("Content-type: application/octet-stream"); //这是声明传送的是什么数据
    octet-stream 的含义是 8位字节流,不光是浏览器,就是你我也不知道里面到底是什么东西
    header('Content-Disposition: attachment; filename="'.$name.'"'); //这是声明一个文件名
      

  5.   

    http://blog.csdn.net/lihua2915/article/details/6300773我在网上查的
    Content-Disposition  可以激活对话框    (当然 网上也不一定是对  我经常找到错误的代码)但是我自己测试的时候
    如果不设置这个  Content-Disposition头  img html就会以网页的形式打开
    设置了就不会了还有你说在可以再php里面配置 那个怎么配置呀???