我做了个下载功能,能下载,但是下载的图片不能预览,doc文件打开是乱码,反正就是没有正常的。上传之后我去文件夹看了,所有文件和原来的一样,就是下载之后就不能用了,这是怎么回事??求帮忙

解决方案 »

  1.   

    我的代码是:
    <?php 
      if($_GET['id']){
       $id=$_GET['id'];
       echo"$id"; $query_1=mysql_query("select * from tb_zl where id=$id",$conn);
    while($myrow_1=mysql_fetch_array($query_1)){
             $path="$myrow_1[path]";
               header("Content-type: text/html; charset=gb2312"); //设置文件编码格式
    echo"$path"; //获取文件路径
    if(!empty($path) and !is_null($path)){ //判断变量是否为空,是否为NULL
    $filename=basename($path); //获取文件名
    $file=@fopen($path,"r");
    if($file){
    header("Content-type:application/octet-stream");  //输出MIME类型 
    header("Accept-ranges:bytes"); //接受的范围单位
    header("Accept-length:".filesize($path)); // 文件长度 
    header("Content-Disposition:attachment;filename=".$filename);  //缺省时文件保存对话框中的文件名称
    echo fread($file,filesize($path)); //读取文件
    fclose($file); //关闭文件
    exit; //退出
    }else{
    echo "<script>alert('您下载的文件不存在!'); history.back();</script>";
    }
    }


    }
      } 
    ?>
      

  2.   

    把文件中所有的echo 等有输出的地方删除
      

  3.   

    我试了,把所有有echo的地方都注释了,但是下载下来的文件还是不能用
      

  4.   


    <?php
    //请保证之前没有任何输出,尤其是检查有没有BOM信息
    ob_start();

    if($file){
    ob_end_clean();//为了防止ob_start()到这之间有内容输出
    header("Content-type:application/octet-stream");

      

  5.   

    header("Content-type:application/octet-stream");所有的都是这个吗?
    图片可不是