下载png格式的图片,弹出来php文件格式的下载,求解决

WBOY
풀어 주다: 2016-06-23 13:37:27
원래의
1036명이 탐색했습니다.

function down_file($file_name,$file_path){
   @$file_name=iconv("utf_8","gb2312",$file_name);
   $file_path=$_SERVER['DOCUMENT_ROOT'].$file_path.$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-Rangers: bytes");
header("Accept-Length: $file_size");
header("Content-Dispostion: attachment;filename=".$file_name);
   while(!feof($file_path)){
     $data=fread($fp,1024);
     echo $data;
   }
   fclose($fp);
}

down_file("php.png","/down/");
?>


回复讨论(解决方案)

加个下载类型试试  header("content-type: image/png"); 

同1#

header("Content-Dispostion: attachment;filename=". $file_name);
这个是带路径的了吧
header("Content-Dispostion: attachment;filename=". basename($file_name));
这样才行




谢谢三位   你们说的 都对

1?和2??位。。。
加header("content-type: image/png"); ?有用的,因?是下?,不是?示?片。
首先,你的code根本就不能?行,有????了。

@$file_name=iconv(" utf_8","gb2312",$file_name);  ??是UTF-8
while(!feof( $file_path)){  ??是$fp
header("Content- Dispostion: attachment;filename=".$file_name);  ??是 disposition

改成??就可以了。

function down_file($file_name,$file_path){	@$file_name=iconv("utf-8","gb2312",$file_name);	$file_path=$_SERVER['DOCUMENT_ROOT'].$file_path.$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-Rangers: bytes");	header("Accept-Length: $file_size");	header("Content-Disposition: attachment;filename=".$file_name);	while(!feof($fp)){		$data=fread($fp,1024);		echo $data;	}   fclose($fp);}down_file("php.png","/down/");
로그인 후 복사

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿