PHP下载,封装后JPG多200多字节,压缩文件没有问题

WBOY
Freigeben: 2016-06-20 12:43:00
Original
982 Leute haben es durchsucht

<?phprequire 'Bashiliu.Class.php';header("Content-type:text/html;charset=utf-8");//接受要下载的文件名字//$file_name=$_REQUEST['file_name'];down_file("3.rar","/");	?>
Nach dem Login kopieren

Bashiliu.Class.php文件
<?php        function down_file($file_name,$file_sub_dir){	//死去活来,演示下载一个图片.	//如果文件是中文.	//$file_name='xx.jpg';	//原因 php文件函数,比较古老,需要对中文转码 gb2312	$file_name=iconv("utf-8","gb2312",$file_name);	//相对路径	//$file_path="./down/".$file_name;	//绝对路径	$file_path=$_SERVER['DOCUMENT_ROOT'].$file_sub_dir.$file_name;	//如果你希望绝对路径	//1.打开文件	if(!file_exists($file_path)){	echo "文件不存在!";	return ;	}	$fp=fopen($file_path,"r");	//获取下载文件的大小	$file_size=filesize($file_path);	if($file_size>10*1024*1024){	echo "<script language='javascript'>window.alert('过大')</script>";	return ;	}	//返回的文件	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);	}?>
Nach dem Login kopieren

源文件和下载下来的txt文件对比


回复讨论(解决方案)

已经找到原因了
http://bbs.csdn.net/topics/390485077

不是上面的原因

确认程序文件没有 BOM 头,没有多余的空格空行
$fp=fopen($file_path,"r b"); //要用二进制方式打开

谢谢版主了,果然是空行的原因

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage