Home > Backend Development > PHP Problem > How to implement image upload function in php

How to implement image upload function in php

藏色散人
Release: 2023-03-04 18:56:01
Original
5378 people have browsed it

php method to implement the image upload function: first create a folder to store images; then create the HTML part; then create the "uploadHandler.php" file; finally compare the image format of the file with the elements in the array and Just upload it.

How to implement image upload function in php

Recommended: "PHP Video Tutorial"

Image upload operation in PHP

In front-end programming, sometimes we need to allow viewers to upload a certain picture. We can implement this function through PHP.

1. Create a folder to store pictures

Here, we create the folder "file" to store the pictures uploaded by the user. At this time, the folder is empty, and the folder creation address can be It's your choice, but it's best to build it in a location that's easily accessible.

2. Create the HTML part (uploadfile.html)

 Here we use the form form tag of HTML, and the

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

code in the form is as follows:

<!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>
Copy after login

Note:

1. The action in the form is connected to the .php file that will be created later to handle image upload.

2. Enctype="multipart/form-data" must be noted in the attribute of form. The enctype attribute specifies how form data is encoded before sending it to the server. multipart/form-data does not encode characters. This value is required when using a form with a file upload control.

 3. Here, we are using the post method.

3. Create the PHP part (uploadHandler.php)

1. Principle

 We create a php file and only enter

<?php var_dump($_FILES);  ?>
Copy after login

 Then we A corresponding array arr(1) will be printed.

The array structure of ar h(1) is:

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) // 图片大小
 } 
}
Copy after login

There is an element ["img"] under the array array, and under ["img"] is a two-dimensional array. This The two-dimensional array has five elements, namely: name / type / tmp_name / error / size.

# ## Through these attributes, we get the basic information of a picture. The next step is to save the picture into a folder by judging these basic attributes.

2. Actual operation

 Make the following judgment:

error [Yes]: Prompt error ❌

error [No]: Next step✅

## ˆ ˆ╙type[non-img]: Prompt error ❌

˜

ˆ ˆ ˆ╙type[img]: Next step ✅

ˆ ˆ ˆ╙type[non-jpeg]: Prompt error ❌

ˆ ˆ ˆ╙type[jpeg]: Next step ✅

ˆ ˆ If the above judgments are met, then we think this picture can be saved.

To avoid duplication of picture naming, we use the concept of timestamps to splice them into a new file name so that each picture is uniquely named.

And we can create an array, the elements in the array are various image formats, compare the image format of the file with the elements in the array, if the image format is not recognized by us, it will not be saved.

The code is as follows:

<?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"];
};
?>
Copy after login

4. Upload pictures

At this point, if everything meets the requirements, then the pictures we uploaded will be stored in the file folder. . Upload successful!

The above is the detailed content of How to implement image upload function in php. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template