Maison développement back-end Problème PHP Comment implémenter la fonction de téléchargement d'image en php

Comment implémenter la fonction de téléchargement d'image en php

Aug 19, 2020 am 10:35 AM
php

Comment PHP implémente la fonction de téléchargement d'images : créez d'abord un dossier pour stocker les images ; puis créez la partie HTML ; puis créez le fichier "uploadHandler.php" et enfin comparez le format d'image du fichier avec les éléments qu'il contient ; le tableau et téléchargez-le simplement.

Comment implémenter la fonction de téléchargement d'image 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">来提交图片相关信息
Copier après la connexion

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>
Copier après la connexion

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 et entrons seulement

<?php var_dump($_FILES);  ?>
Copier après la connexion

   Ensuite, nous A le tableau correspondant arr(1) sera imprimé.

  La structure du tableau de arr(1) est :

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) // 图片大小
 } 
}
Copier après la connexion

  Il y a un élément ["img"] sous le tableau tableau, et sous ["img"] c'est un élément bidimensionnel tableau, ce Le 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 :

erreur [Oui] : erreur d'invite ❌

erreur [Non] : étape suivante✅

     ╙type[non-img] : erreur d'invite ❌

    ╙type[img] : étape suivante✅

    ╙type[non-jpeg] : erreur d'invite ❌

ˆ ˆ ˆ╙type[jpeg] : Étape suivante✅

˜ Si les jugements ci-dessus sont satisfaits, 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"];
};
?>
Copier après la connexion

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 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 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

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)

Configuration du projet CakePHP Configuration du projet CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Routage CakePHP Routage CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

See all articles