php 下载中文图片报错问题

问题描述

php 下载中文图片报错问题

放在不同页面中运行他会报出下载的图片不存在的错误但是我的图片存在
英文的图片名可以但是中文的图片名就报文件不存在为什么?帮忙改正一下。。。。
ShowPicture.php页面如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

无标题文档

点击下载
点击下载

<?php
$str = urlencode("顺平.jpg");
echo "点击下载"
?>
点击下载

DownPicture.php页面如下:
<?php
header("Expires: -1");
header("Cache-Control: no_cache");
header("Pragma: no-cache");
header("Content-Type: text/html; charset=utf-8");
require 'class/fileDown.class.php';
$name=urldecode($_REQUEST["name"]);
//echo $name;
down_file($name,"/MianXiangDuixiang/down/");
?>
fileDown.class.php页面如下:
<?php
header("Expires: -1");
header("Cache-Control: no_cache");
header("Pragma: no-cache");
header("Content-Type: text/html; charset=utf-8");
function down_file($file_name,$file_sub_dir)
{
$file_name=iconv("gb2312","GBK",$file_name);
$file_path = $_SERVER['DOCUMENT_ROOT'].$file_sub_dir.$file_name;
if(!file_exists($file_path))
{
echo"文件不存在";
return ;
}
$fp = fopen($file_path,"r");
$file_size = filesize($file_path);
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Accept-Length: $file_size");
header("Content-Disposition: attachment; filename=".$file_name);
$buffer = 1024;
$file_count = 0;
while(!feof($fp) && ($file_size-$file_count>0))
{
$file_data = fread($fp,$buffer);
$file_count+=$buffer;
echo $file_data;
}
fclose($fp);
}
?>

时间: 2024-09-23 17:35:06

php 下载中文图片报错问题的相关文章

安卓下载图片,多线程下载就会报错,有人知道怎么解决么?

问题描述 安卓下载图片,多线程下载就会报错,有人知道怎么解决么? android.os.NetworkOnMainThreadExceptionat android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)at java.net.InetAddress.lookupHostByName(InetAddress.java:385)at java.net.InetAddress.getAllByName

java-用MySql插入图片报错!!r如何解决

问题描述 用MySql插入图片报错!!r如何解决 String sql="insert into image(tupian) values(?)"; Connection conn=null; PreparedStatement ps=null; try { conn=getConnection(); ps=(PreparedStatement) conn.prepareStatement(sql); ps.setBinaryStream(1, Thread.currentThread

VB中使用lead控件加载jpg图片报错

问题描述 VB中使用lead控件加载jpg图片报错 调用LEAD1.BitmapDataPath = "111.jpg"时报错,换成111.bmp就没有问题,这种现象其他电脑没有,是什么问题 解决方案 这个不好说,你的图片没法解析,建议先转换成标准的位图格式再加载.

软件开发-JAVA在下载的时候报错,各位大神路过顺便帮忙看下吧

问题描述 JAVA在下载的时候报错,各位大神路过顺便帮忙看下吧 ClientAbortException: java.io.IOException at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:369) at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:368) at org.apache.catalina.co

android项目上客户端显示图片报错

问题描述 android项目上客户端显示图片报错 从sd卡上取图片,数据库存储图片的路径,客户端报:java.lang.NumberFormatException:Invalid int:"" 双引号内容是图片路径. 解决方案 互联网访问图片,在android客户端显示 解决方案二: 首先你要确认路径是否出错

svn-Android studio导入SVN下载的项目报错

问题描述 Android studio导入SVN下载的项目报错 如图所示 cleanup也没用 也不能点运行按钮 急!!求大神帮助...求解决啊!整了一天了 解决方案 建议在夜间时段,使用稳定的vpn下载. 解决方案二: 本地环境不同吧.... 解决方案三: 重新下载一次呗,只要SVN上的东西是好的就可以 解决方案四: android 导入项目报错android studio svn 报错eclipse中导入android项目报错

imageview-异步任务加载图片报错

问题描述 异步任务加载图片报错 执行图片异步任务,学习连接: http://schimpf.es/asynctask-for-image-download/ 在代码中: ImageView im1 = (ImageView) findViewById(R.id.image); ImageDownloadTask imageD = new ImageDownloadTask(im1); imageD.execute(e.mediumLabel); 结果报出的错误: 06-19 15:22:23.4

python3.5 用socket提取图片报错,急!

问题描述 python3.5 用socket提取图片报错,急! 我在学习Python for Information 这本书,第12章是用socket去抓取一张网络图片,但是报错UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 246: invalid start byte 用python 2.7是可以正常用的,但是python3.5 在 这句报错 picture = picture + bytes.deco

c#-C#二进制转换为图片报错

问题描述 C#二进制转换为图片报错 System.IO.MemoryStream ms = new System.IO.MemoryStream(data.TP); Image img = Image.FromStream(ms); data.TP是二进制的图片调试的时候报参数无效. ((System.IO.Stream)(ms)).ReadTimeout引发了System.InvalidOperationException类型的异常 ((System.IO.Stream)(ms)).Write