限制上传文件类型程序代码_PHP教程

php中文网
发布: 2016-07-20 11:11:42
原创
786人浏览过

我们一般不会在前段限制用户上传文件时的文件类,因为也没什么好的办法来限制只能使用像php,asp这类来操作,下面我来介绍利用js来定义type=file浏览上传时的文件类型与php中限制上传文件类型代码。

利用js

例1

 代码如下 复制代码

<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格式的图片)

例2

立即学习PHP免费学习笔记(深入)”;

 代码如下 复制代码

<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('.')</script>

+1,length)))1;")){alert("Allowed file types:n"+af);obj.createTextRange().execCommand('delete')};
}}


例3

码上飞
码上飞

码上飞(CodeFlying) 是一款AI自动化开发平台,通过自然语言描述即可自动生成完整应用程序。

码上飞 138
查看详情 码上飞
 代码如下 复制代码

/*
 * 判断图片类型
 *
 * @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;
}

如果是利用php,asp类的我们就不能像上面处理了需要如下

 代码如下 复制代码

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

上面的方法说实话只能骗小朋友了,只要我们把上传文件的后缀名改一下就可能通过上面验证

稍加改进后这样就与文件后缀名无关了

 代码如下 复制代码

$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文件 重新上传');
   
 }

id 后缀名 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
15 wav audio/wav
16 krc application/octet-stream
17 lrc application/octet-stream
18 txt text/plain
19 doc application/msword
20 xls application/vnd.ms-excel
21 ppt application/vnd.ms-powerpoint
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


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/444631.htmlTechArticle我们一般不会在前段限制用户上传文件时的文件类,因为也没什么好的办法来限制只能使用像php,asp这类来操作,下面我来介绍利用js来定义...
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号