Maison >développement back-end >tutoriel php >Analyse approfondie des fichiers de téléchargement php

Analyse approfondie des fichiers de téléchargement php

小云云
小云云original
2018-03-15 09:55:551365parcourir

Cet article partage principalement avec vous l'analyse approfondie des fichiers de téléchargement PHP. Nous avons également partagé avec vous de nombreux articles sur les fichiers de téléchargement PHP. J'espère que cet article pourra aider tout le monde.

1.phpTélécharger la configuration du fichierphp.iniConfiguration :

(1) file_uploads=on|off  : Déterminer PHP sur le serveur Si le script peut accepter les téléchargements de fichiers.

(2)max_execution_time=integer : PHP Le temps maximum, en secondes, qu'un script peut exécuter avant d'enregistrer une erreur fatale

.

(3) memory_limit=integer  : paramètres La mémoire maximale à laquelle le script peut être alloué, en Mo. Cela empêche les scripts incontrôlables de monopoliser la mémoire du serveur.

(

4

)upload_max_filesize=integer  : Définissez la taille maximale du fichier de téléchargement sur MB est l'unité. Cette directive doit être plus petite que plus petite que

post_max_size

. (

5

)upload_tmp_dir=string  : paramètres Les fichiers téléchargés doivent être stockés dans un emplacement temporaire sur le serveur avant d'être traités, jusqu'à ce que le fichier soit déplacé vers sa destination finale.

(

6

)post_max_size=integer  : OK pour passer La taille maximale des informations que la méthode POST peut accepter, en Mo en unité

2.php

Télécharger les méthodes associées

(1)bool is_uploaded_file(string $filename)

Définition : is_uploaded_file() La fonction détermine si le fichier spécifié est téléchargé via HTTP POST

Paramètres $filename  : $_FILES['file_img']['tmp_name'] (exemple)

Spécifie les fichiers à vérifier : C:WindowsTempphp9632.tmp

( 2)bool move_uploaded_file ( string $filename , string $destination )

Définition : move_uploaded_file () La fonction déplace le fichier téléchargé vers un nouvel emplacement Généralement utilisée en conjonction avec is_uploaded+_file() méthode

Paramètres $filename : $_FILES['file_img']['tmp_name'] (exemple)

Spécifie le fichier à déplacer : C:Windows Tempphp9632.tmp                                                    $dest ination

dirname(__FILE__).DS.'uploads'.DS.$_FILES['file_img']['name'](exemple) Spécifie l'emplacement du fichier à déplacer :

D:myWAPmyWeblearnphp_uploaduploadshm_g_img.jpg3.phpCas de téléchargement : Il est stipulé que seuls les fichiers images peuvent être téléchargés

(

1

)

Dossiers et fichiers nécessaires

(2)file_unload_select.php fichier pour fichier HTMLParcourir la sélection, cliquer sur télécharger :


enctype = "multipart/form-data" Méthode d'écriture fixe , sinon le téléchargement du fichier échouera

action = "url"

method="post" Le téléchargement général est post


(3)upload.php le fichier est utilisé pour traiter les fichiers téléchargés déterminer le type de fichier téléchargé et déplacer les fichiers vers le répertoire spécifié sur le serveur :

//接收上传文件
print_r($_FILES);
define('DS',DIRECTORY_SEPARATOR);


//判断当前上传的文件是否为图片
$img_type_arr = array('image/png','image/jpeg','image/jpeg');

//for循环遍历数组 -- 第一方法判断是否为数组中的子项
for($i=0;$i<count($img_type_arr);$i++)
{
       if($img_type_arr[$i] != $_FILES[&#39;file_img&#39;][&#39;type&#39;] && ($i == count($img_type_arr)-1) )
       {
                echo ""
                exit;
       }
}



//数组方法array_in() -- 第二方法判断是否为数组中的子项
if(!is_uploaded_file($_FILES[&#39;file_img&#39;][&#39;tmp_name&#39;]))
{
      //如果临时文件不存在,则说明没有上传到临时文件夹
      echo  &#39;上传到临时文件夹失败&#39;;
}
else
{

   //echo &#39;上传到临时文件夹成功&#39;;
   $img_path = dirname(__FILE__).DS.&#39;uploads&#39;.DS.$_FILES[&#39;file_img&#39;][&#39;name&#39;];

   //echo $img_path;

   //进行移动文件到服务器地址
   if(@move_uploaded_file($_FILES[&#39;file_img&#39;][&#39;tmp_name&#39;],$img_path))
   {
        //显示图片
        echo "<img src=".$img_path." />"
   }
   else
   {
        cho &#39;移动文件失败&#39;;

   }
}


(4)show_image.php Utilisé pour recevoir les chemins des fichiers image pour afficher les images téléchargées avec succès :

$img_path = $_GET[&#39;url&#39;];

echo "";

(5) Téléchargez le noyau Utilisez simplement les sous-paramètres de $_FILES pour terminer le téléchargement et le jugement  :

Array ( [file_img] => Array ( [name] => news_001_01.jpg [type] => image/jpeg 
[tmp_name] => C:\Windows\Temp\php504D.tmp [error] => 0 [size] => 158360 ) )

analyse :

$_FILES['file_img']['name'] : news_001_01.jpg Télécharger le nom du fichier

$_FILES ['file_img']['type'] : image/jpeg Type de fichier téléchargé

$_FILES['file_img'][ ' tmp_name '] : C :WindowsTempphp504D.tmp Le chemin de stockage du fichier temporaire du fichier téléchargé

$_FILES['file_img']['error' ] : 0 , 1, 2, 3 , 4

                                                                                        La taille du fichier dépasse la valeur convenue (spécifiée par PHP.ini)

2 -> signifie télécharger un fichier La taille dépasse la valeur convenue (HTML spécification du formulaire)

3 -> indique que le fichier n'est que partiellement téléchargé 4 ->

signifie qu'aucun fichier n'est téléchargé

Connexe recommandations :

Barre de progression de l'affichage des fichiers volumineux du téléchargement JS natif Code de téléchargement des fichiers PHP

Le code du fichier de téléchargement php implémente un exemple de progression de l'affichage des fichiers volumineux du téléchargement JS natif barre

Code simple pour télécharger des fichiers en php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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