readfile binary(图片)文件头会多出一位(0x0A)来.该怎么解决
readfile binary(图片)文件头会多出一位(0x0A)来.
大家好,现在我们的项目遇到了一个比较困扰的问题。使用readfile下载图片文件时,文件会文件首会比原来多出一位(0x0A)来,使用UEdit删除文件首的那个16进制位文件可正确读出。
源代码如下:
- PHP code
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> <?php $file = 'test_img.bmp'; if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file); exit; } ?>
下载后的文件和原文件比较如下:
代码在以前的服务器上运行从未出现问题,但当我们的项目更换了运行支撑环境(操作系统/apache/php 版本均有可能不同),在网上查遍了所有的文档,无解决办法。求高手解决此问题,在此先感谢大家了!
如有有效解决办法,将给您追加到200分结贴。
------解决方案--------------------
- PHP code
//给你一段 //$mime,文件类型 //$filename,这个不用说了吧 //$data 是你要输出的文件数据,你试试用 file_get_contents 来获得 if (strpos($_SERVER['HTTP_USER_AGENT'], "MSIE") !== FALSE) { header('Content-Type: "'.$mime.'"'); header('Content-Disposition: attachment; filename="'.$filename.'"'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header("Content-Transfer-Encoding: binary"); header('Pragma: public'); header("Content-Length: ".strlen($data)); } else { header('Content-Type: "'.$mime.'"'); header('Content-Disposition: attachment; filename="'.$filename.'"'); header("Content-Transfer-Encoding: binary"); header('Expires: 0'); header('Pragma: no-cache'); header("Content-Length: ".strlen($data)); } exit($data); <br><font color="#e78608">------解决方案--------------------</font><br> 刚用了你的代码测试了一下,没出现你说的问题。<br><br> ob_clean();<br> flush();<br><br>把这两句去掉看看。 <br><font color="#e78608">------解决方案--------------------</font><br> 在你的这行代码前,看是否有输出过字符?? <br><font color="#e78608">------解决方案--------------------</font><br> 多出个换行符,,,贴的不是你生产环境的代码吧 <br><font color="#e78608">------解决方案--------------------</font><br> 源代码如下:<br><br>[code=PHP]<br><br><?php <br />$file = 'test_img.bmp';<br><br>很显然,您的 <?php 前有一个空行<br />更低级的就是你连 BOM 头都没有避讳 <div class="clear"> </div>

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Pour en savoir plus sur l'open source, veuillez visiter : 51CTO Hongmeng Developer Community https://ost.51cto.com Environnement d'exploitation DAYU200 : 4.0.10.16SDK : 4.0.10.15IDE : 4.0.600 1. Pour créer une application, cliquez sur Fichier- >nouveauFichier->CréerProgect. Sélectionnez le modèle : [OpenHarmony] EmptyAbility : indiquez le nom du projet, shici, le nom du package d'application com.nut.shici et l'emplacement de stockage de l'application XXX (pas de chinois, de caractères spéciaux ou d'espaces). CompileSDK10, modèle : étape. Appareil

Utilisez la fonction File.length() de Java pour obtenir la taille d'un fichier. La taille du fichier est une exigence très courante lors des opérations sur les fichiers. Java fournit un moyen très pratique d'obtenir la taille d'un fichier, c'est-à-dire en utilisant la longueur (. ) méthode de la classe File . Cet article explique comment utiliser cette méthode pour obtenir la taille d'un fichier et donne des exemples de code correspondants. Tout d’abord, nous devons créer un objet File pour représenter le fichier dont nous voulons obtenir la taille. Voici comment créer un objet File : Filef

Comment convertir un blob php en fichier : 1. Créez un exemple de fichier php ; 2. Via "function blobToFile(blob) {return new File([blob], 'screenshot.png', { type: 'image/jpeg' }) } » peut être utilisée pour convertir un Blob en fichier.

Utilisez la fonction File.renameTo() de Java pour renommer des fichiers. En programmation Java, nous avons souvent besoin de renommer des fichiers. Java fournit la classe File pour gérer les opérations sur les fichiers, et sa fonction renameTo() peut facilement renommer les fichiers. Cet article explique comment utiliser la fonction File.renameTo() de Java pour renommer des fichiers et fournit des exemples de code correspondants. La fonction File.renameTo() est une méthode de la classe File.

[SpringBoot] Passage des paramètres dans l'en-tête via les appels Feign Comment transmettre les paramètres de l'en-tête via Feign Description du problème Lorsque nous utilisons Feign pour demander l'interface API d'un autre service dans Spring Cloud, il est nécessaire de transmettre les paramètres dans l'en-tête. un traitement spécial est effectué, les paramètres de l'en-tête seront perdus. Solution 1 : transmettez-le via @RequestHeader(name="headerName") Par exemple : Feign est défini comme suit @FeignClient(name="service-name")pub.

L'en-tête de Linux fait référence au début d'un fichier ou d'un flux de données, qui est utilisé pour contenir des métadonnées sur le contenu. En écrivant et en utilisant correctement le fichier d'en-tête, les développeurs peuvent mieux utiliser les ressources du système et améliorer la lisibilité et la lisibilité du code. Maintenabilité.

Utilisez la fonction File.getParentFile() de Java pour obtenir le répertoire parent d'un fichier. En programmation Java, nous avons souvent besoin d'exploiter des fichiers et des dossiers. Lorsque nous avons besoin d'obtenir le répertoire parent d'un fichier, nous pouvons utiliser la fonction File.getParentFile() fournie par Java. Cet article explique comment utiliser cette fonction et fournit des exemples de code. La classe de fichiers en Java est la classe principale utilisée pour gérer les fichiers et les dossiers. Il fournit de nombreuses méthodes pour obtenir et manipuler les propriétés des fichiers

Utilisez la fonction File.getParent() de Java pour obtenir le chemin parent d'un fichier. En programmation Java, nous avons souvent besoin d'exploiter des fichiers et des dossiers. Parfois, nous devons obtenir le chemin parent d’un fichier, qui est le chemin du dossier où se trouve le fichier. La classe File de Java fournit la méthode getParent() pour obtenir le chemin parent d'un fichier ou d'un dossier. La classe File est la représentation abstraite des fichiers et des dossiers en Java. Elle fournit une série de méthodes pour exploiter les fichiers et les dossiers. Parmi eux, obtenez
