Home  >  Article  >  Backend Development  >  How to upload images and replace them in php

How to upload images and replace them in php

藏色散人
藏色散人Original
2020-08-06 10:04:433408browse

php method to upload images and replace them: first create "change.html" and "change.php" files; then determine whether the file type is an image format, if so, upload the file and replace the specified file; finally Just call the function that determines the file type and convert it to lowercase.

How to upload images and replace them in php

Recommended: "PHP Video Tutorial"

php implements uploading image files and replaces

First create two files: change.html and change.php

The form code of the change.html file is as follows:

<html>
<head>
<title>change file example.</title>
<meta charset="UTF-8">
</head>
<body>
<form method="post" action="changefile.php" enctype="multipart/form-data">
<table border=0 cellspacing=0 cellpadding=0 align=center width="100%">
<tr>
<td width=55 height=20 align="center">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
文件:
</td>
<td>
<input name="file" type="file" />
<input type="submit" name="submit" value="submit" />
</td>
</tr>
</table>
</form>
</body>
</html>

There are several things to pay attention to here. , first look at this sentence 1a123767db84ac117fb1eb1f208cd298. Here we use the POST method. Some browsers also support the PUT method. Of course, this requires I don't recommend modifying the script. enctype="multipart/form-data must be set in the form, so that the server knows that the uploaded file contains regular form information. Remember, this must be set. In addition, a hidden field is needed to limit the maximum length of the uploaded file: < ;input type="hidden" name="MAX_FILE_SIZE" value="2000000">, the name here must be set to MAX_FILE_SIZE, the value is the maximum length of the uploaded file, the unit is B, here I limit it to 2M. Look at this sentence again :f1c3c26395f0f952a2084fb0b034997b, type="file" indicates the file type. In this way, a basic file upload interface is completed. Next, let’s talk about how to use PHP to process uploaded files. In addition, the maximum length of uploaded files set in your php.ini may affect your actual upload. Please modify it according to the actual situation. In addition, PHP uploads are first uploaded to a temporary directory and then moved to the specified directory. Yes, yes; the temporary directory can be modified as needed, or the default value can be used...

The following is the code for the form submission change.php file, let's see what this file has:

<?php
header("content-type:text/html;charset=utf-8");
 
/**
* @param string $oldfile 需要更换的文件名(包含具体路径名)
*/
function changeFile($oldfile){
$newfile = $_FILES[&#39;file&#39;][&#39;name&#39;];//获取上传文件名
$fileclass = substr(strrchr($newfile, &#39;.&#39;), 1);//获取上传文件扩展名,做判断用
$type = array("jpg", "gif", "bmp", "jpeg", "png");//设置允许上传文件的类型
if(in_array(strtolower($fileclass), $type)){
if(file_exists($oldfile)){
unlink($oldfile);
}
if(is_uploaded_file($_FILES[&#39;file&#39;][&#39;tmp_name&#39;])){//必须通过 PHP 的 HTTP POST 上传机制所上传的
if(move_uploaded_file($_FILES[&#39;file&#39;][&#39;tmp_name&#39;], $oldfile)){
//输出图片预览
echo "<center>您的文件已经上传完毕 上传图片预览: </center><br><center><img src=&#39;$oldfile&#39;></center>";
}
}else{
echo "<center>上传失败,文件大于2M,请重新上传!</center>";
}
}else{
$text = implode(",", $type);
echo "<center>您只能上传以下类型文件:", $text, "</center><br>";
// echo "<script>alert(&#39;您只能上传以下类型文件:$text&#39;)</script>";
}
}
changeFile("./files/1.png");

You may be a little dizzy when you first read these~~, but if you look slowly, you will find that this thing is actually SO EASY!! Let me talk about the principle first. This program takes uploading pictures as an example. It first determines whether the file type is an image format. If so, then Upload the file, then upload the file to and replace the specified file. If the upload is successful, a preview of the uploaded image will be output. Here are some explanations of some functions in the program. First look at substr(strrchr($newfile, '.'), 1), strrchar What is the role of the () function? Let me give you an example and everyone will know. For example, if we use strrchar() to process a picture file pic.jpg, strrchr(pic.jpg,'.'), it will return .jpg. I understand. Is it? This function returns the string after the last occurrence of the specified character in the string. With substr(), we can get the jpg, so that we can get the suffix of the file to determine whether the uploaded file conforms to the specified format. This program puts the specified format in an array, which can be added as needed during actual use.

Next, we call the function to determine the file type and convert it into lowercase strtolower($_FILES['file' ]['name']), there is a very critical thing here $_FILES, which is a super global array that saves the form data that needs to be processed. If register_globals is turned on, you can also access it directly, but this is unsafe. Look at the upload interface just now fa68a6172e90ddc4102f2ff67a357dc2. According to this form name, we can get a lot of information:

$_FILES[&#39;file&#39;][&#39;name&#39;]--   得到文件名称
$_FILES[&#39;file&#39;][&#39;tmp_name&#39;]--得到临时存储位置
$_FILES[&#39;file&#39;][&#39;size&#39;]--得到文件大小
$_FILES[&#39;file&#39;][&#39;type&#39;]--得到文件MIME类型

With this information, we can easily determine the file information Yes, isn’t it very convenient? ^_^, there are some functions that need to be understood next, file_exists()--determine whether the specified directory exists. If it does not exist, of course we cannot upload it (it seems like nonsense!), is_uploaded_file--determine whether the file has been uploaded through HTTP POST, move_uploaded_file --Move the uploaded file to the specified directory. If the upload is successful, we will output the preview, otherwise the output upload will fail...

The above is the detailed content of How to upload images and replace them in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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