Maison php教程 php手册 php下载jpg文件为空解决方法

php下载jpg文件为空解决方法

May 25, 2016 pm 04:53 PM
Est vide

jpg格式的文件,点击在浏览器中打开显示为红叉:代码如下:

$filetype = "image/pjpeg"; 
header("content-type: {$filetype}"); 
header("expires: 0"); 
header("cache-control: must-revalidate, post-check=0,pre-check=0"); 
header("pragma: public"); 
$file_content = file_get_contents($filepath); 
echo $file_content; 
exit;
Copier après la connexion

首先排查初始文件是否有问题:

1、echo $filepath;

2、根据输出的文件完整路径,打开文件,没有问题

排除原始文件的嫌疑,然后排查在文件读取过程中是否存在问题:

1、$filetype = "application/jpeg";

header("content-disposition: attachment; filename="{$headername}";");

将文件强制下载,下载下来发现文件大小与原始文件一致,但是打开后还是为空,可以确定在文件输出的时候出现了问题,使用

file_put_contents("d:aaa.jpg",file_get_contents($filepath)),将文件保存到服务器,保存的文件可以打开,这时我怀疑在文件输出到客户端的时候编码出了问题,经过一段时间的折腾,终于把问题解决,代码如下:

header("content-type: {$filetype}"); 
header("expires: 0"); 
header("cache-control: must-revalidate, post-check=0,pre-check=0"); 
header("pragma: public"); 
//此处增加编码设定 
header('content-transfer-encoding: binary'); 
//此处最重要,目的是要清空输出的字节 
ob_clean(); 
//此处等于下面被注射的两行,可节省代码 
readfile($filepath); 
//$file_content = file_get_contents($filepath); 
//echo $file_content;    
exit;
Copier après la connexion

此处附ob_clean()的解释:clean (erase) the output buffer

我理解ob_clean()等于.net中的response.clear();


   


本文地址:

转载随意,但请附上文章地址:-)

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)