Maison développement back-end tutoriel php Php中文件下载功能实现超详细流程分析_PHP

Php中文件下载功能实现超详细流程分析_PHP

Jun 01, 2016 pm 12:11 PM
下载

客户端从服务端下载文件的流程分析:

浏览器发送一个请求,请求访问服务器中的某个网页(如:down.php),该网页的代码如下。
服务器接受到该请求以后,马上运行该down.php文件
运行该文件的时候,必然要把将要被下载的文件读入内存当中(这里是圣诞狂欢.jpg这张图片),这里通过fopen()函数完成该动作
注意:任何有关从服务器下载的文件操作,必然需要先在服务端将文件读入内存当中

现在文件已经在内存当中了,这是需要从内存当中读取文件,通过fread()函数完成该动作
需要注意的是,如果文件较大,文件应该是被分成多段返回给客户端的,并不是等文件在服务端全部读取完毕后,一次性返回给客户端,因为这样子会增加服务器的负荷。
所以我们需要在php代码中设置一次读取的字节数,比如我在下面的代码中通过$buffer=1024设置一次读取的字节数,每读取一次,就输出数据(即返回给浏览器)

流程图:
Php中文件下载功能实现超详细流程分析_PHP
复制代码 代码如下:
header("Content-type:text/html;charset=utf-8");
// $file_name="cookie.jpg";
$file_name="圣诞狂欢.jpg";
//用以解决中文不能显示出来的问题
$file_name=iconv("utf-8","gb2312",$file_name);
$file_sub_path=$_SERVER['DOCUMENT_ROOT']."marcofly/phpstudy/down/down/";
$file_path=$file_sub_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-Ranges: bytes");
Header("Accept-Length:".$file_size);
Header("Content-Disposition: attachment; filename=".$file_name);
$buffer=1024;
$file_count=0;
//向浏览器返回数据
while(!feof($fp) && $file_count$file_con=fread($fp,$buffer);
$file_count+=$buffer;
echo $file_con;
}
fclose($fp);
?>

几点注意事项:

header("Content-type:text/html;charset=utf-8")的作用:在服务器响应浏览器的请求时,告诉浏览器以编码格式为UTF-8的编码显示该内容
关于file_exists()函数不支持中文路径的问题:因为php函数比较早,不支持中文,所以如果被下载的文件名是中文的话,需要对其进行字符编码转换,否则file_exists()函数不能识别,可以使用iconv()函数进行编码转换
$file_sub_path() 我使用的是绝对路径,执行效率要比相对路径高
Header("Content-type: application/octet-stream")的作用:通过这句代码客户端浏览器就能知道服务端返回的文件形式
Header("Accept-Ranges: bytes")的作用:告诉客户端浏览器返回的文件大小是按照字节进行计算的
Header("Accept-Length:".$file_size)的作用:告诉浏览器返回的文件大小
Header("Content-Disposition: attachment; filename=".$file_name)的作用:告诉浏览器返回的文件的名称
以上四个Header()是必需的
fclose($fp)可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区

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)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
4 Il y a quelques semaines By DDD
Musée à deux points: toutes les expositions et où les trouver
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

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)

Comment utiliser les liens magnétiques Comment utiliser les liens magnétiques Feb 18, 2024 am 10:02 AM

Le lien magnétique est une méthode de lien pour télécharger des ressources, qui est plus pratique et efficace que les méthodes de téléchargement traditionnelles. Les liens magnétiques vous permettent de télécharger des ressources de manière peer-to-peer sans recourir à un serveur intermédiaire. Cet article explique comment utiliser les liens magnétiques et à quoi il faut prêter attention. 1. Qu'est-ce qu'un lien magnétique ? Un lien magnétique est une méthode de téléchargement basée sur le protocole P2P (Peer-to-Peer). Grâce à des liens magnétiques, les utilisateurs peuvent se connecter directement à l'éditeur de la ressource pour finaliser le partage et le téléchargement des ressources. Par rapport aux méthodes de téléchargement traditionnelles, magnétique

Comment télécharger des épisodes du court métrage dramatique Hongguo Comment télécharger des épisodes du court métrage dramatique Hongguo Mar 11, 2024 pm 09:16 PM

Hongguo Short Play n'est pas seulement une plate-forme pour regarder des pièces courtes, mais aussi un trésor de contenu riche, notamment des romans et d'autres contenus passionnants. C’est sans aucun doute une énorme surprise pour de nombreux utilisateurs qui aiment lire. Cependant, de nombreux utilisateurs ne savent toujours pas comment télécharger et regarder ces romans dans Hongguo Short Play. Dans ce qui suit, l'éditeur de ce site vous fournira des étapes de téléchargement détaillées, dans l'espoir d'aider tous les partenaires dans le besoin. Comment télécharger et regarder la pièce courte de Hongguo ? Réponse : [Pièce courte de Hongguo] - [Livre audio] - [Article] - [Télécharger]. Étapes spécifiques : 1. Ouvrez d'abord le logiciel Hongguo Short Drama, entrez dans la page d'accueil et cliquez sur le bouton [Écouter les livres] en haut de la page. 2. Ensuite, sur la page du roman, nous pouvons voir de nombreux contenus d'articles, ici ;

Que dois-je faire si je télécharge les fonds d'écran d'autres personnes après m'être connecté à un autre compte sur WallpaperEngine ? Que dois-je faire si je télécharge les fonds d'écran d'autres personnes après m'être connecté à un autre compte sur WallpaperEngine ? Mar 19, 2024 pm 02:00 PM

Lorsque vous vous connectez au compte Steam de quelqu'un d'autre sur votre ordinateur et que le compte de cette autre personne dispose d'un logiciel de fond d'écran, Steam téléchargera automatiquement les fonds d'écran abonnés au compte de l'autre personne après être revenu à votre propre compte. Les utilisateurs peuvent résoudre ce problème en. désactiver la synchronisation du cloud Steam. Que faire si WallpaperEngine télécharge les fonds d'écran d'autres personnes après s'être connecté à un autre compte 1. Connectez-vous à votre propre compte Steam, recherchez la synchronisation cloud dans les paramètres et désactivez la synchronisation cloud Steam. 2. Connectez-vous au compte Steam de quelqu'un d'autre auquel vous vous êtes connecté auparavant, ouvrez Wallpaper Creative Workshop, recherchez le contenu de l'abonnement, puis annulez tous les abonnements. (Si vous ne trouvez pas le fond d'écran à l'avenir, vous pouvez d'abord le récupérer, puis annuler l'abonnement) 3. Revenez à votre propre Steam

Comment télécharger des vidéos à partir d'un compte vidéo 'Incontournable : un moyen simple d'enregistrer des vidéos à partir d'un compte vidéo' Comment télécharger des vidéos à partir d'un compte vidéo 'Incontournable : un moyen simple d'enregistrer des vidéos à partir d'un compte vidéo' Feb 06, 2024 pm 06:42 PM

Aujourd'hui, de plus en plus de personnes commencent à jouer aux comptes vidéo. Les comptes vidéo sont également une courte plateforme vidéo sur laquelle ils peuvent partager leur vie quotidienne et gagner de l'argent grâce aux comptes vidéo. Récemment, j'ai vu des amis demander pourquoi les vidéos du compte vidéo WeChat n'étaient pas téléchargées. Yang Shuaikang est allé l'essayer et a découvert qu'il n'y avait effectivement pas de bouton de téléchargement, il a donc dû utiliser d'autres méthodes pour extraire les vidéos. partagera avec vous une méthode stupide, venez jeter un oeil. Comment extraire des vidéos des comptes vidéo WeChat 1. Ouvrez notre version informatique de WeChat et recherchez [Compte vidéo] sur la gauche ; 2. Recherchez la vidéo que vous souhaitez télécharger via la recherche 3. Enfin, utilisez l'outil d'enregistrement d'écran pour ajuster le paramètre ; taille de la vidéo enregistrée. Enregistrez-la et éditez-la à la fin. PS : 1. Cette méthode ne peut être enregistrée que sur la version ordinateur, pas sur le téléphone mobile.

Comment télécharger des liens commençant par 115:// ? Introduction à la méthode de téléchargement Comment télécharger des liens commençant par 115:// ? Introduction à la méthode de téléchargement Mar 14, 2024 am 11:58 AM

Récemment, de nombreux utilisateurs ont demandé à l'éditeur comment télécharger des liens commençant par 115:// ? Si vous souhaitez télécharger des liens commençant par 115://, vous devez utiliser le navigateur 115. Après avoir téléchargé le navigateur 115, jetons un œil au didacticiel de téléchargement compilé par l'éditeur ci-dessous. Introduction à la façon de télécharger des liens commençant par 115:// 1. Connectez-vous à 115.com, téléchargez et installez le navigateur 115. 2. Saisissez : chrome://extensions/ dans la barre d'adresse du navigateur 115, entrez dans le centre d'extensions, recherchez Tampermonkey et installez le plug-in correspondant. 3. Saisissez dans la barre d'adresse du navigateur 115 : Grease Monkey Script : https://greasyfork.org/en/

Comment télécharger des fichiers à partir du disque cloud 123 Comment télécharger des fichiers à partir du disque cloud 123 Feb 23, 2024 pm 08:58 PM

Le disque cloud 123 peut télécharger de nombreux fichiers, alors comment télécharger des fichiers spécifiquement ? Les utilisateurs peuvent sélectionner le fichier qu'ils souhaitent télécharger et cliquer pour télécharger, ou cliquer avec le bouton droit sur le fichier et sélectionner télécharger. Cette introduction à la méthode de téléchargement de fichiers à partir du disque cloud 123 peut vous expliquer comment le télécharger. Les amis qui n'y connaissent pas grand-chose devraient se dépêcher et y jeter un œil ! Comment télécharger des fichiers à partir de 123 Cloud Disk 1. Ouvrez d'abord le logiciel, cliquez sur le logiciel qui doit être téléchargé, puis il y aura un bouton de téléchargement dessus. 2. Ou cliquez avec le bouton droit sur le logiciel et vous pourrez voir le bouton de téléchargement dans la liste. 3. Il y aura une fenêtre de téléchargement, sélectionnez l'emplacement que vous souhaitez télécharger. 4. Après la sélection, cliquez sur Télécharger pour télécharger ces fichiers.

Introduction à la façon de télécharger et d'installer le jeu superpeople Introduction à la façon de télécharger et d'installer le jeu superpeople Mar 30, 2024 pm 04:01 PM

Le jeu superpeople peut être téléchargé via le client Steam. La taille de ce jeu est d'environ 28 Go. Le téléchargement et l'installation prennent généralement une heure et demie. Voici un tutoriel de téléchargement et d'installation spécifique pour vous ! Nouvelle méthode pour postuler aux tests fermés globaux 1) Recherchez "SUPERPEOPLE" dans la boutique Steam (téléchargement du client Steam) 2) Cliquez sur "Demander l'accès aux tests fermés SUPERPEOPLE" en bas de la page de la boutique "SUPERPEOPLE" 3) Après avoir cliqué sur le bouton de demande d'accès, le jeu "SUPERPEOPLECBT" peut être confirmé dans la bibliothèque Steam 4) Cliquez sur le bouton d'installation dans "SUPERPEOPLECBT" et téléchargez

Comment télécharger le disque réseau Quark en local ? Comment enregistrer les fichiers téléchargés depuis Quark Network Disk sur l'ordinateur local Comment télécharger le disque réseau Quark en local ? Comment enregistrer les fichiers téléchargés depuis Quark Network Disk sur l'ordinateur local Mar 13, 2024 pm 08:31 PM

De nombreux utilisateurs ont besoin de télécharger des fichiers lorsqu'ils utilisent Quark Network Disk, mais nous souhaitons les enregistrer localement, alors comment configurer cela ? Laissez ce site présenter aux utilisateurs en détail comment enregistrer les fichiers téléchargés à partir de Quark Network Disk sur l'ordinateur local. Comment enregistrer les fichiers téléchargés depuis le disque réseau Quark sur votre ordinateur local 1. Ouvrez Quark, connectez-vous à votre compte et cliquez sur l'icône de liste. 2. Après avoir cliqué sur l'icône, sélectionnez le disque réseau. 3. Après avoir accédé à Quark Network Disk, cliquez sur Mes fichiers. 4. Après avoir accédé à Mes fichiers, sélectionnez le fichier que vous souhaitez télécharger et cliquez sur l'icône à trois points. 5. Cochez le fichier que vous souhaitez télécharger et cliquez sur Télécharger.

See all articles