Home >Backend Development >PHP Tutorial >Program code to restrict uploaded file types_PHP tutorial
We generally do not restrict the file types when users upload files in the previous section, because there is no good way to limit the operation to only using php, asp, etc. Next, I will introduce the use of js to define type=file when browsing and uploading. File types and restrictions on uploading file type codes in PHP.
Using js
Example 1
The code is as follows | Copy code | ||||||||
|
Example 2
The code is as follows | Copy code | ||||||||
|
The code is as follows | Copy code |
/* * Determine the image type * * @param ths * Type="file" javascript Object * @return true - meets the requirements, false - does not meet the requirements */ function checkImgType(ths){ if (ths.value == "") { alert("Please upload a picture"); return false; } else { if (!/.(gif|jpg|jpeg|png|GIF|JPG|PNG)$ /.test(ths.value)) { alert("The picture type must be one of .gif, jpeg, jpg, png"); ths.value = ""; return false; } } return true; } |
The code is as follows | Copy code |
$name=$_FILES['file4']['name']; //Get the name of the original file on the client machine $type=strstr($name,"."); //Get the characters from "." to the last if($type!=".txt") { echo "Sorry, the format of the file you uploaded Incorrect!!"; echo " will return to the previous page after 3 seconds. .."; } |
To be honest, the above method can only deceive children. As long as we change the suffix name of the uploaded file, it may pass the above verification
After slight improvement, it will have nothing to do with the file suffix name
The code is as follows
|
Copy code |
||||
$temppath=$upfile['tmp_name']; $fileinfo=pathinfo($upfile['name']); $extension=$upfile['type']; switch ( $extension ) { case 'application/msword': $extension ='doc'; break; case 'application/vnd.ms-excel': $extension ='xls'; break; case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': $extension ='docx'; break; case ' application/vnd.ms-powerpoint': $extension ='ppt'; break; case 'application/pdf': $extension ='pdf'; break; case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': $extension ='xlsx'; break; default: die('Only allow uploading doc,docx, xls, pdf, ppt filesRe-upload'); File type recognized by id suffix name php 0 gif image/gif 1 jpg image/jpeg 2 png image/png 3 bmp image/bmp 4 psd application/octet- stream 5 ico image/x-icon 6 rar application/octet-stream 7 zip application/zip 8 7z application/octet-stream 9 exe application/octet-stream 10 avi video/avi 11 rmvb application/vnd.rn-realmedia-vbr 12 3gp application/octet-stream 13 flv application/octet-stream | 14 mp3 audio/mpeg
19 doc application/msword
33 ttf application/octet-stream 34 fon application/octet-stream 35 js application/x-javascript