Home >Backend Development >PHP Tutorial >Program code to restrict uploaded file types_PHP tutorial

Program code to restrict uploaded file types_PHP tutorial

WBOY
WBOYOriginal
2016-07-20 11:11:42721browse

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
 代码如下 复制代码

<script><br>function check(){<br>var filepath=path.value<br>filepath=filepath.substring(filepath.lastIndexOf('.')+1,filepath.length)<br>if(filepath != 'jpg' && filepath != 'gif')<br>alert("只能上传JPG或GIF格式的图片")<br>}<br></script>

(只能上传JPG或GIF格式的图片)

<script><br>function check(){<br>var filepath=path.value<br> filepath=filepath.substring(filepath.lastIndexOf('.')+1,filepath.length)<br>if(filepath != 'jpg' && filepath != 'gif')<br>alert("Only Upload images in JPG or GIF format")<br>}<br></script>

(only Upload images in JPG or GIF format)
 代码如下 复制代码

<script><br>function ck(obj){if(obj.value.length>0){<br>var af="jpg,gif,png,zip,rar,txt,htm";<br>if(eval("with(obj.value)if(!/"+af.split(",").join("|")+"/ig.test(substring(lastIndexOf('.')</p> <p>+1,length)))1;")){alert("Allowed file types:n"+af);obj.createTextRange().execCommand('delete')};<br>}}<br></script>


Example 2

The code is as follows Copy code
 代码如下 复制代码

/*
 * 判断图片类型
 *
 * @param ths
 *    type="file"的javascript对象
 * @return true-符合要求,false-不符合
 */
function checkImgType(ths){
 if (ths.value == "") {
  alert("请上传图片");
  return false;
 } else {
  if (!/.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(ths.value)) {
   alert("图片类型必须是.gif,jpeg,jpg,png中的一种");
   ths.value = "";
   return false;
  }
 }
 return true;
}

<script><br>function ck(obj ){if(obj.value.length>0){<br>var af="jpg,gif,png,zip,rar,txt,htm";<br>if(eval("with(obj.value )if(!/"+af.split(",").join("|")+"/ig.test(substring(lastIndexOf('.')<p></p>+1,length))) 1;")){alert("Allowed file types:n"+af);obj.createTextRange().execCommand('delete')};<br>}}<br></script>

 代码如下 复制代码

$name=$_FILES['file4']['name']; //获取客户端机器原文件的名称
$type=strstr($name,"."); //获取从"."到最后的字符 if($type!=".txt")
{ echo "对不起,您上传文件的格式不正确!!";
echo "将在3秒钟后返回前页...";
}

Example 3
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;
}
If you are using php, asp We can't handle it like above. It needs to be as follows
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

14 mp3 audio/mpeg 15 wav audio/wav
The code is as follows
 代码如下 复制代码

$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('只允许上传doc,docx,xls,pdf,ppt文件 重新上传');
   
 }

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
16 krc application/octet-stream
17 lrc application/octet-stream 18 txt text/plain

19 doc application/msword

20 xls application/ vnd.ms-excel 22 pdf application/pdf 23 chm application/octet-stream 24 mdb application/msaccess 25 sql application/ octet-stream 26 con application/octet-stream 27 log text/plain 28 dat application/octet-stream 29 ini application/octet-stream 30 php application/octet- stream 31 html text/html 32 htm text/html
33 ttf application/octet-stream 34 fon application/octet-stream 35 js application/x-javascript
36 xml text/xml
37 dll application/octet-stream 38 dll application/octet-stream http://www.bkjia.com/PHPjc/444631.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/444631.htmlTechArticleWe generally do not restrict the file types when users upload files in the previous stage, because there is no good way to limit only It can be operated using php, asp, etc. Next I will introduce the use of js to define...
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