• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php下载文件包含中文名称

php 搞代码 3年前 (2022-01-22) 18次浏览 已收录 0个评论

这篇文章主要介绍了php下载文件包含中文名称,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

控制器代码:

public function savefile()    {        //接收需要下载的文件名称        /*if(!isset($_GET['file'])) exit('Filename is empty');        if(empty($_GET['file'])) exit('Filename not valid');*/        $file = I('get.file', '', 'trim');//        $file = '/Public/upload/files/20180426/abc.zip';//        $file = '/Public/upload/files/20180426/123.zip';        $new_name = explode('/', $file);        $new_name = $new_name[count($new_name) - 1];        $file_name = $new_name;        ob_clean();//清除一下缓冲区        //获得文件名称        $filename = basename(urldecode($file));        //文件完整路径(这里将真实的文件存放在temp目录下)//        $filePath = __DIR__."/temp/".$filename;        $root = dirname(dirname(dirname(dirname(__FILE__))));        $filePath = $root . $file;        //将utf8编码转换成gbk编码,否则,文件中文名称的文件无法打开        $filePath = iconv('UTF-8', 'gbk', $filePath);        //检查文件是否可读        if (!is_file($filePath) || !is_readable($filePath)) exit('Can not access file ' . $filename);        /**         * 这里应该加上安全验证之类的代码,例如:检测请求来源、验证UA标识等等         */        //以只读方式打开文件,并强制使用二进制模式        $fileHandle = fopen($filePath, "rb");        if ($fileHandle === false) {            exit("Can not open file: $filename");        }        //文件类型是二进制流。设置为utf8编码(支持中文文件名称)        header('Content-type:application/octet-stream; charset=utf-8');        header("Content-Transfer-Encoding: binary");        header("Accept-Ranges: bytes");        //文件大小        header("Content-Length: " . filesize($filePath));        //触发浏览器文件下载功能//        header('Content-Disposition:attachment;filename="'.urlencode($filename).'"');        header('Content-Disposition:attachment;filename="' . $file_name . '"');        //循环读取文件内容,并输出        while (!feof($fileHandle)) {            //从文件指针 handle 读取最多 length 个字节(每次输出10k)            echo fread($fileHandle, 10240);        }//关闭文件流  <i>*本5文来源gaodai$ma#com搞$$代**码)网@</i><img>搞代码gaodaima</img>      fclose($fileHandle);    }页面及js:<p style="padding: 5px 10px 0px 5px"><span style="float: left;">{$vo.name} </span><a class="down" style="float: right" data-url="__ROOT__/{$vo.pic_url}" download="{$vo.pic_url}">下载</a></p><script>mui('body').on('tap', '.down', function () {var url = $(this).attr("data-url");window.location.href = '__CONTROLLER__/savefile?file=' + url;});</script>

此处js为mui框下的,h5可改为click事件

相关推荐:

PHP下载远程图片及保存到本地代码

php下载图片到本地服务器实例分享

php下载远程文件存储到本地开发示例介绍

以上就是php下载文件包含中文名称的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php下载文件包含中文名称

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址