Heim > Backend-Entwicklung > PHP-Problem > Eine einfache Möglichkeit, Bilder in PHP hochzuladen

Eine einfache Möglichkeit, Bilder in PHP hochzuladen

藏色散人
Freigeben: 2023-03-07 07:48:01
Original
14813 Leute haben es durchsucht

So laden Sie Bilder in PHP hoch: Erstellen Sie zuerst einen Ordner zum Speichern der Bilder. Erstellen Sie dann eine PHP-Datei und geben Sie schließlich den Code „“ ein.

Eine einfache Möglichkeit, Bilder in PHP hochzuladen

Empfohlen: „PHP-Video-Tutorial

Bild-Upload-Vorgang in PHP

Bei der Front-End-Programmierung ist es manchmal notwendig, den Zuschauern das Hochladen eines bestimmten Bildes zu ermöglichen durch PHP erreichen.

1. Erstellen Sie einen Ordner zum Speichern von Bildern.

 Hier erstellen wir den Ordner „Datei“, um die vom Benutzer hochgeladenen Bilder zu speichern. Sie können die Ordnererstellungsadresse auswählen, dies ist jedoch der Fall Am besten erstellen Sie es an einem geeigneten Ort.

2. Erstellen Sie den HTML-Teil (uploadfile.html)

 Hier verwenden wir das Form-Tag von HTML und der

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

Code im Formular lautet wie folgt:

<!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>
Nach dem Login kopieren

Hinweis:

  1. Die Aktion in Das Formular ist mit verbunden. Anschließend erstellen Sie eine .php-Datei, die das Hochladen von Bildern verarbeitet.

   2. Enctype="multipart/form-data" muss im Formularattribut vermerkt werden. Das enctype-Attribut gibt an, wie Formulardaten codiert werden, bevor sie an den Server gesendet werden. multipart/form-data kodiert keine Zeichen. Dieser Wert ist erforderlich, wenn ein Formular mit einer Datei-Upload-Steuerung verwendet wird.

   3. Hier verwenden wir die Post-Methode.

3. Erstellen Sie den PHP-Teil (uploadHandler.php)

  Wir erstellen eine PHP-Datei, in die wir nur

<?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) // 图片大小
 } 
}
Nach dem Login kopieren

  eingeben. Unter dem Array-Array befindet sich ein Element [„img“] ["img"] Unten ist ein zweidimensionales Array. Dieses zweidimensionale Array besteht aus fünf Elementen, nämlich: Name / Typ / tmp_name / Fehler / Größe.

  Durch diese Attribute erhalten wir die Grundinformationen eines Bildes. Der nächste Schritt besteht darin, das Bild in einem Ordner zu speichern, indem wir diese Grundattribute beurteilen.

2. Tatsächlicher Betrieb

   Treffen Sie folgendes Urteil:

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

   Wenn das obige Urteil zutrifft, denken wir, dass dieses Bild gerettet werden kann.

  Um doppelte Bildnamen zu vermeiden, verwenden wir das Konzept der Zeitstempel, um sie in einen neuen Dateinamen zusammenzufügen, sodass der Name jedes Bildes eindeutig ist.

  Und wir können ein Array erstellen, die Elemente im Array sind verschiedene Bildformate, vergleichen das Bildformat der Datei mit den Elementen im Array, Bildformate, die von uns nicht erkannt werden, werden nicht gespeichert.

Der Code lautet wie folgt:

<?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"];
};
?>
Nach dem Login kopieren

4. Bilder hochladen

  Wenn zu diesem Zeitpunkt alles den Anforderungen entspricht, werden die von uns hochgeladenen Bilder im Dateiordner gespeichert. Hochladen erfolgreich!

Das obige ist der detaillierte Inhalt vonEine einfache Möglichkeit, Bilder in PHP hochzuladen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage