php进行图片下载的时候,出现图片损坏,无法打开(实质原因,多输出了一个空白字符zwnbsp ) -尊龙游戏旗舰厅官网
尊龙游戏旗舰厅官网
收集整理的这篇文章主要介绍了
php进行图片下载的时候,出现图片损坏,无法打开(实质原因,多输出了一个空白字符zwnbsp )
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
解决办法
非常重要, 必须加入下面两行代码,
否则会出现 zwnbsp (图片下载,显示文件已损坏)
参考代码:
function my_download($file_dir, $file_name) {$filepath = $file_dir . $file_name;//检查文件是否可读if (!is_file($filepath)) exit('can not access file, ' . $filepath);if (!is_readable($filepath)) exit('can not read file, ' . $filepath);/*** 这里应该加上安全验证之类的代码,例如:检测请求来源、验证ua标识等等*///以只读方式打开文件,并强制使用二进制模式$filehandle = fopen($filepath, "rb");if ($filehandle === false) {exit("can not open file: $filepath");}//文件类型是二进制流。设置为utf8编码(支持中文文件名称)if (extension_name($file_name) == 'png' or extension_name($file_name) == 'jepg' or extension_name($file_name) == 'jpg'){header('content-type:application/octet-stream;');}else{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($file_name) . '"');// 非常重要, 否则会出现 zwnbsp (图片下载,显示文件已损坏)ob_clean();flush();//循环读取文件内容,并输出while (!feof($filehandle)) {//从文件指针 handle 读取最多 length 个字节(每次输出10k)echo fread($filehandle, 10240);}//关闭文件流fclose($filehandle); }总结
以上是尊龙游戏旗舰厅官网为你收集整理的php进行图片下载的时候,出现图片损坏,无法打开(实质原因,多输出了一个空白字符zwnbsp )的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇:
- 下一篇: