" ; Code PHP Téléchargez-le simplement."/> " ; Code PHP Téléchargez-le simplement.">

Maison >développement back-end >Problème PHP >Un moyen simple de télécharger des images en php

Un moyen simple de télécharger des images en php

藏色散人
藏色散人original
2020-11-04 09:48:3314815parcourir

Comment télécharger des images en PHP : créez d'abord un dossier pour stocker les images ; puis créez la partie HTML ; puis créez un fichier PHP et entrez enfin le code "" ; .

Un moyen simple de télécharger des images en php

Recommandé : "Tutoriel vidéo PHP"

Opération de téléchargement d'images en PHP

  Dans la programmation frontale, nous devons parfois permettre aux téléspectateurs de télécharger une certaine image. Nous pouvons implémenter cette fonction via PHP.

1. Créez un dossier pour stocker les images

  Ici, nous créons le dossier « fichier » pour stocker les images téléchargées par l'utilisateur. À ce moment, le dossier est vide, et le dossier. l'adresse de création peut être C'est votre choix, mais il est préférable de la construire dans un endroit facilement accessible.

2. Créez la partie HTML (uploadfile.html)

  Ici, nous utilisons la balise form form du HTML, et le code

<input type="file">来选择图片文件
<input type="submit">来提交图片相关信息

dans le formulaire est le suivant :

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title></title>
 </head>
 <body> 
  <form action="uploadHandler.php" method="post" enctype="multipart/form-data">
   Upload Img:<input type="file" name="img"/>
   <input type="submit" value="Upload"/>
  </form>
 </body>
</html>

Remarque :

1. L'action dans le formulaire est connectée au fichier .php qui sera créé ultérieurement pour gérer le téléchargement d'images.

  2. Enctype="multipart/form-data" doit être noté dans l'attribut form. L'attribut enctype spécifie comment les données du formulaire sont codées avant d'être envoyées au serveur. multipart/form-data n'encode pas les caractères. Cette valeur est obligatoire lors de l'utilisation d'un formulaire avec un contrôle de téléchargement de fichier.

  3. Ici, nous utilisons la méthode post.

3. Créez la partie PHP (uploadHandler.php)

1. Principe

  Nous créons un fichier php, dans lequel nous saisissons uniquement

<?php var_dump($_FILES);  ?>
  那么我们会打印到一个相应的数组arr(1)。
  arr(1)的数组结构为:
array(1) { 
 ["img"]=> array(5) { 
  ["name"]=> string(**) "AAAAAAA.jpg" // 图片名
  ["type"]=> string(10) "image/jpeg" // 图片格式
  ["tmp_name"]=> string(45) "/Applications/XAMPP/xamppfiles/temp/phpVZQY0m" // 图片缓存地址
  ["error"]=> int(0) // 上传图片错误数
  ["size"]=> int(124246) // 图片大小
 } 
}

 le tableau Il y a un élément ["img"] sous le tableau, et sous ["img"] se trouve un tableau bidimensionnel. Ce tableau bidimensionnel comporte cinq éléments, à savoir : nom / type / nom_tmp / erreur / taille.

 Grâce à ces attributs, nous obtenons les informations de base d'une image. Ensuite, nous devons juger ces attributs de base et enregistrer l'image dans un dossier.

2. Fonctionnement réel

   Faites le jugement suivant :

error [有]:提示错误❌
error [无]:下一步✅
    ╙type[非 img]:提示错误❌
    ╙type[img]:下一步✅
      ╙type[非 jpeg]:提示错误❌
      ╙type[jpeg]:下一步✅

   Si le jugement ci-dessus est respecté, alors nous pensons que cette image peut être enregistrée.

  Pour éviter la duplication du nom des images, nous utilisons le concept d'horodatage pour les fusionner en un nouveau nom de fichier afin que chaque image porte un nom unique.

  Et nous pouvons créer un tableau, les éléments du tableau sont différents formats d'image, comparez le format d'image du fichier avec les éléments du tableau, les formats d'image que nous ne reconnaissons pas ne seront pas enregistrés.

Le code est le suivant :

<?php
// 接收文件
var_dump($_FILES); // 区别于$_POST、$_GET
print_r($_FILES);
$file = $_FILES["img"];
// 先判断有没有错
if ($file["error"] == 0) {
 // 成功 
 // 判断传输的文件是否是图片,类型是否合适
 // 获取传输的文件类型
 $typeArr = explode("/", $file["type"]);
 if($typeArr[0]== "image"){
  // 如果是图片类型
  $imgType = array("png","jpg","jpeg");
  if(in_array($typeArr[1], $imgType)){ // 图片格式是数组中的一个
   // 类型检查无误,保存到文件夹内
   // 给图片定一个新名字 (使用时间戳,防止重复)
   $imgname = "file/".time().".".$typeArr[1];
   // 将上传的文件写入到文件夹中
   // 参数1: 图片在服务器缓存的地址
   // 参数2: 图片的目的地址(最终保存的位置)
   // 最终会有一个布尔返回值
   $bol = move_uploaded_file($file["tmp_name"], $imgname);
   if($bol){
    echo "上传成功!";
   } else {
    echo "上传失败!";
   };
  };
 } else {
  // 不是图片类型
  echo "没有图片,再检查一下吧!";
 };
} else {
 // 失败
 echo $file["error"];
};
?>

IV. Télécharger des photos

  À ce stade, si tout répond aux exigences, les photos que nous avons téléchargées seront stockées dans le fichier. dossier . Téléchargement réussi !

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
Article précédent:A quoi sert $ en phpArticle suivant:A quoi sert $ en php