Maison développement back-end tutoriel php PHP实现文件安全下载的实例_PHP

PHP实现文件安全下载的实例_PHP

Jun 01, 2016 pm 12:31 PM
file 下载 安全 实例 实现 文件

程序如下:

  $file_name = "info_check.exe";

  $file_dir = "/public/www/download/";

  if (!file_exists($file_dir . $file_name)) { //检查文件是否存在

  echo "文件找不到";

  exit;

  } else {

  $file = fopen($file_dir . $file_name,"r"); //打开文件

  //输入文件标签

  Header("Content-type: application/octet-stream");

  Header("Accept-Ranges: bytes");

  Header("Accept-Length: ".filesize($file_dir . $file_name));

  Header("Content-Disposition: attachment; filename=" . $file_name);

  //输出文件内容

  echo fread($file,filesize($file_dir . $file_name));

  fclose($file);

  exit;}

  而如果文件路径是"http"或者"ftp"网址的话,则源代码会有少许改变,程序如下:

  $file_name = "info_check.exe";

  $file_dir = "www.easycn.net/";

  $file = @ fopen($file_dir . $file_name,"r");

  if (!$file) {

  echo "文件找不到";

  } else {

  Header("Content-type: application/octet-stream");

  Header("Content-Disposition: attachment; filename=" . $file_name);

  while (!feof ($file)) {

  echo fread($file,50000);

  }

  fclose ($file);

  }

  这样就可以用PHP直接输出文件了

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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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 télécharger de la musique qq sur une clé USB ? -Comment télécharger de la musique qq sur un disque USB Comment télécharger de la musique qq sur une clé USB ? -Comment télécharger de la musique qq sur un disque USB Apr 01, 2024 am 10:11 AM

1. Ouvrez le logiciel QQ Music, entrez le nom de votre chanson préférée dans la barre de recherche et cliquez sur le bouton de téléchargement. 2. Ouvrez le dossier dans lequel les chansons téléchargées sont stockées. 3. Copiez les chansons téléchargées sur la clé USB et c'est tout ! Bien sûr, vous devez d'abord ouvrir le disque U, puis ouvrir le disque U dans « Poste de travail » et le coller.

Comment télécharger les procès-verbaux de réunion de Tencent Conference_Comment télécharger les procès-verbaux de réunion de Tencent Conference Comment télécharger les procès-verbaux de réunion de Tencent Conference_Comment télécharger les procès-verbaux de réunion de Tencent Conference Apr 02, 2024 pm 03:30 PM

1. Ouvrez d'abord Tencent Meeting et cliquez sur [Historique de la réunion] sur la page d'accueil. 2. Après avoir accédé à la réunion, cliquez sur [Enregistrement Cloud] pour télécharger. 3. Enfin, pour télécharger la vidéo d'enregistrement dans le cloud, l'hôte de la réunion doit activer l'autorisation de téléchargement et avoir l'autorisation de visualiser le fichier d'enregistrement.

Analyse complète de l'opération de renommage des fichiers de langue Go Analyse complète de l'opération de renommage des fichiers de langue Go Apr 08, 2024 pm 03:30 PM

La fonction os.Rename est utilisée dans le langage Go pour renommer des fichiers. La syntaxe est : funcRename(oldpath,newpathstring)error. Cette fonction renomme le fichier spécifié par oldpath en fichier spécifié par newpath. Les exemples incluent le simple changement de nom, le déplacement de fichiers vers différents répertoires et l'ignorance de la gestion des erreurs. La fonction Renommer effectue une opération atomique et ne peut mettre à jour les entrées de répertoire que lorsque les deux fichiers se trouvent dans le même répertoire. Les renommages peuvent échouer sur plusieurs volumes ou lorsqu'un fichier est en cours d'utilisation.

Comment télécharger des plans d'étage CAO depuis Kujiale_Comment télécharger des plans d'étage CAO depuis Kujiale Comment télécharger des plans d'étage CAO depuis Kujiale_Comment télécharger des plans d'étage CAO depuis Kujiale Apr 02, 2024 pm 01:25 PM

1. Importez à partir de la fenêtre contextuelle de l'outil de conception de maison lorsque vous y entrez pour la première fois. Cliquez sur [Démarrer la conception] dans Cloud Design. Après avoir accédé à la page de l'outil, sélectionnez Importation CAO. Remarque : Actuellement, seul le format DWG/DXF est pris en charge, DWG ne dépasse pas 5 Mo et DXF ne dépasse pas 10 Mo. 2. Importez à partir de l'outil Plan de maison. Cliquez sur [Importer]-[Importer CAD] sur la page Outil de plan de maison. Étape 2 : Ajustez le plan de maison CAO importé. Après avoir importé le CAO, comme le montre la figure ci-dessous, certains murs n'ont pas été générés. Cliquez sur l'outil de dessin de mur dans le coin supérieur gauche de l'interface du plan de maison pour le remplir. (la position du cadre rouge sur l'image). Après avoir dessiné le mur, à gauche, sélectionnez le modèle de porte et de fenêtre et faites-le glisser vers le mur pour la décoration. Remarque : la conception de décoration 3D ne peut pas être réalisée pour les unités qui ne sont pas fermées. Après avoir réglé les positions des portes et fenêtres ainsi que le sens d’ouverture des portes, pensez à attribuer des commandes à chaque pièce.

Microframework PHP : discussion sur la sécurité de Slim et Phalcon Microframework PHP : discussion sur la sécurité de Slim et Phalcon Jun 04, 2024 am 09:28 AM

Dans la comparaison de sécurité entre Slim et Phalcon dans les micro-frameworks PHP, Phalcon dispose de fonctionnalités de sécurité intégrées telles que la protection CSRF et XSS, la validation de formulaire, etc., tandis que Slim manque de fonctionnalités de sécurité prêtes à l'emploi et nécessite une implémentation manuelle. de mesures de sécurité. Pour les applications critiques en matière de sécurité, Phalcon offre une protection plus complète et constitue le meilleur choix.

Comment la conception de l'architecture de sécurité du framework Java doit-elle être équilibrée avec les besoins de l'entreprise ? Comment la conception de l'architecture de sécurité du framework Java doit-elle être équilibrée avec les besoins de l'entreprise ? Jun 04, 2024 pm 02:53 PM

La conception du framework Java assure la sécurité en équilibrant les besoins de sécurité avec les besoins de l'entreprise : en identifiant les principaux besoins de l'entreprise et en hiérarchisant les exigences de sécurité pertinentes. Développez des stratégies de sécurité flexibles, répondez aux menaces par niveaux et effectuez des ajustements réguliers. Tenez compte de la flexibilité architecturale, prenez en charge l’évolution de l’entreprise et des fonctions de sécurité abstraites. Donnez la priorité à l’efficacité et à la disponibilité, optimisez les mesures de sécurité et améliorez la visibilité.

Configuration de la sécurité et renforcement du framework Struts 2 Configuration de la sécurité et renforcement du framework Struts 2 May 31, 2024 pm 10:53 PM

Pour protéger votre application Struts2, vous pouvez utiliser les configurations de sécurité suivantes : Désactiver les fonctionnalités inutilisées Activer la vérification du type de contenu Valider l'entrée Activer les jetons de sécurité Empêcher les attaques CSRF Utiliser RBAC pour restreindre l'accès basé sur les rôles

Implémentation d'algorithmes d'apprentissage automatique en C++ : considérations de sécurité et bonnes pratiques Implémentation d'algorithmes d'apprentissage automatique en C++ : considérations de sécurité et bonnes pratiques Jun 01, 2024 am 09:26 AM

Lors de la mise en œuvre d'algorithmes d'apprentissage automatique en C++, les considérations de sécurité sont essentielles, notamment la confidentialité des données, la falsification du modèle et la validation des entrées. Les meilleures pratiques incluent l'adoption de bibliothèques sécurisées, la réduction des autorisations, l'utilisation de bacs à sable et une surveillance continue. Le cas pratique démontre l'utilisation de la bibliothèque Botan pour chiffrer et déchiffrer le modèle CNN afin de garantir une formation et une prédiction sûres.

See all articles