Maison > développement back-end > Problème PHP > Quel est le processus de téléchargement de fichiers php ?

Quel est le processus de téléchargement de fichiers php ?

coldplay.xixi
Libérer: 2023-03-08 09:50:01
original
3178 Les gens l'ont consulté

Processus de téléchargement de fichier PHP : configurez d'abord le fichier PHP et définissez le formulaire frontal ; puis enregistrez le fichier temporaire dans le répertoire défini par défaut ; puis jugez et traitez enfin l'attribut d'erreur dans le tableau de fichiers ; sur le front-end, vous pouvez limiter le type et la taille des fichiers téléchargés.

Quel est le processus de téléchargement de fichiers php ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 5.6, ordinateur DELL G3 Cette méthode convient à toutes les marques d'ordinateurs.

Processus de téléchargement de fichiers php :

1. Fichier de configuration PHP

La section de téléchargement de fichiers dans le fichier php.ini définit la configuration de téléchargement de fichier pertinente. .

  • file_uploads = On Activer les téléchargements de fichiers

  • upload_tmp_dir = répertoire temporaire

  • upload_max_filesize = 2 M Taille de téléchargement maximale

  • max_file_uploads = 20 Nombre maximum de fichiers téléchargés à la fois

Formulaire frontal

<form action="test.php" method="post" enctype="multipart/form-data">
  <input type="file" name="myfile">
  <input type="submit" value="上传">
</form>
Copier après la connexion
<. 🎜>Lors de l'utilisation du fichier Lors du téléchargement du formulaire du contrôle, l'enctype du formulaire doit être défini sur "multipart/form-data".

Vous pouvez limiter la taille et le type des fichiers téléchargés sur le client :

<input type="hidden" name="MAX_FILE_SIZE" value="8096">
<input type="file" name="myfile" accept="image/jpeg,image/png">
Copier après la connexion

3 Traitement en arrière-plan

Après le téléchargement, vous obtiendrez un

tableau de fichiers sur. côté serveur Comme suit : $_FILES

Quel est le processus de téléchargement de fichiers php ?

Les fichiers temporaires téléchargés sur le serveur sont enregistrés par défaut dans le répertoire défini par

dans php.ini. fichiers à l'emplacement spécifié : upload_tmp_dir

<?php
  header(&#39;Content-type:text/html;charset=utf-8&#39;);
  $myfile=$_FILES[&#39;myfile&#39;];
  //获取文件数组[&#39;myfile&#39;]的属性tmp_name与name
  $tmp=$myfile[&#39;tmp_name&#39;];
  $picname=$myfile[&#39;name&#39;];
  //windows采用GBK编码,php采用utf-8编码,需要改变文件名的编码格式
  $picname=iconv(&#39;utf-8&#39;,&#39;GBK&#39;,$picname);
  //将零时文件$tmp移动到指定目录userpic并命名为$picname
  copy($tmp,"userpic/".$picname);
Copier après la connexion

4. Gestion des erreurs

Juger et traiter l'attribut d'erreur dans le tableau de fichiers :

$error=$myfile[&#39;myfile&#39;][&#39;error&#39;];
  if ($error==0){//为0,代表上传成功
    if (move_uploaded_file($tmp,"userpic/".$picname)) {
      echo "移动文件成功";
    }else{
      echo "移动文件失败";
    }
  }else{//不为0,匹配错误信息
    switch ($error){
      case 1:
        echo "超过文件最大上传限制";//php.ini中upload_max_filesize
        break;
      case 2:
        echo "超过表单文件大小限制";//HTML表单中MAX_FILE_SIZE选项
        break;
      case 3:
        echo "文件部分被上传";
        break;
      case 4:
        echo "未选择上传文件";
        break;
      case 7://文件写入失败
      case 8:
        echo "系统错误";
        break;
    }
  }
Copier après la connexion

5. >Sur le front-end, les fichiers téléchargés peuvent être traités Restrictions de type et de taille :

<!--表单隐藏域对上传大小进行限制-->
<input type="hidden" name="MAX_FILE_SIZE" value="2097152">
<!--accept 对文件类型限制-->
<input type="file" name="myfile" accept="image/jpeg,image/png">
Copier après la connexion

Notez que la limite est en octets

Il existe également des restrictions de réponse côté serveur :

$size=$myfile[&#39;size&#39;];//获取文件大小
$MaxSize=2097152;//设置最大允许字节
$type=$myfile[&#39;type&#39;];//获取图片类型
$AllowTypr=array(&#39;image/jpeg&#39;,&#39;image/png&#39;,&#39;image/gif&#39;);//允许类型数组
if ($error==0){//为0,代表上传成功
  if ($size>$MaxSize){
    echo "<script>alert(&#39;文件大小超过限制&#39;);</script>";
    echo "<script>history.back(1);</script>";
    exit();
  }
  if (!in_array($type,$AllowTypr)){
    echo "<script>alert(&#39;请上传正确图片类型&#39;);</script>";
    echo "<script>history.back(1);</script>";
    exit();
  }
Copier après la connexion

Recommandations vidéo associées :

Programmation PHP du débutant au compétent

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal