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

How to upload files and replace them in php

藏色散人
藏色散人Original
2021-02-25 10:06:582823browse

php method to upload files and replace them: first create two files, namely "change.html" and "change.php"; then use "strrchar()" to process the files; then call to determine the file type function and convert it to lowercase; finally upload and replace the file.

How to upload files and replace them in php

The operating environment of this article: windows7 system, PHP7.1 version, DELL G3 computer

How to upload image files with php and Replace

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 requirements here Things to pay attention to, first look at this sentence 1a123767db84ac117fb1eb1f208cd298. Here we use the POST method. Some browsers also support the PUT method. Of course This requires modifications to the script, which I don't recommend. 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...

[Recommended learning: "PHP Video Tutorial"]

The following is the form Submit the change.php file code and take a look at what is in this file:

<?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 this~~, but if you look at it slowly, you will find that this thing is actually SO EASY!! Let’s talk about it first! Based on the following principle, this program takes uploading pictures as an example. It first determines whether the file type is an image format. If so, uploads the file, then uploads the file to and replaces the specified file. If the upload is successful, a preview of the uploaded picture will be output. Here are some functions in the program Let me give you some explanations. Let’s look at substr(strrchr($newfile, '.'), 1) first. What is the function of strrchar()? Let me give you an example. For example, for a picture file pic.jpg, we use strrchar( ) processing, strrchr(pic.jpg,'.'), it will return .jpg, do you understand? This function returns the string after the last position of the specified character in the string. With substr() we can get to jpg, so that we can get the suffix name 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 key thing here $_FILES. This is a super global array that saves the required The processed form data can also be accessed directly if register_globals is turned on, 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['file']['name'] -- Get the file name

$_FILES['file']['tmp_name']--Get the temporary storage location

$_FILES['file']['size']--Get File size

$_FILES['file']['type']--Get the file MIME type

With this information, you can easily determine the file information. Isn't it very convenient? Next, there are some functions that need to be understood, 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--will upload The file is moved 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 files 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