baidu_30018937 2017-06-07 14:17 采纳率: 28.6%
浏览 1925
已采纳

php下载文件不显示文件名的中文该如何解决

之前一直乱码,转换格式后下载没问题了,只是文件名会忽略开头的中文,是什么问题?
例如文件名是(爱神的箭123.doc)下载的话文件名变成123.doc了,文件的内容是完整的

  • 写回答

3条回答 默认 最新

  • 一个没有毅力的人 2017-06-08 12:39
    关注

    <?php
    //文件的下载
    //文件名
    $file_name="张飞.jpg";
    //如果名称为中文的,必须将名称改成gb2312的编码格式
    $file_name=iconv('utf-8','gb2312',"$file_name");
    //打开文件,并且以只读的形式
    $file=fopen($file_name,'r');
    //确定文件的大小
    $size=fileSize($file_name);
    //告诉浏览器要传输的是一个流
    header("Content-type:application/octet-stream");
    //告诉浏览器传送的大小
    header("Accept-Length:$size");
    //告诉浏览器传输的东西要保存,保存名字是$file_name
    header("Content-Disposition:attachment;filename=$file_name");
    //让浏览器去读文件,记得echo,记得echo,记得echo
    echo fread($file,$size);
    //关闭文件
    fclose($file);
    //header(Content-type:application/jpg);
    ?>

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了