允许上传类型部分代码
$uptypes=array(  //上传文件类型列表
'image/gif', 'image/jpg', 'image/jpeg', 'image/pjpeg', 'image/png','application/msword','application/vnd.ms-excel',
'image/bmp','text/plain','application/octet-stream','image/x-png','application/x-shockwave-flash','audio/mpeg','audio/x-ms-wma',
'application/x-zip-compressed'
);

判断文件类型部分
if(!in_array($_FILES["upfile"]["type"], $uptypes))
//检查文件类型
{
echo "<font color='red'>不能上传此类型文件!</font>";
exit;
}

我的本意是想允许RAR这类文件上传,但做测试时,BAT,EXE等格式都可以上传,我测试了一下,这类文件的也是$_FILES["upfile"]["type"]是'application/octet-stream',所以就能上传了。

目前我要想允许RAR上传,又能禁止BAT其它的格式文件上传怎么办?

解决的代码:
$uptypes=array(  //上传文件类型列表
'gif', 'jpg','jpeg','png','doc','xls',
'bmp','txt','rar','swf','mp3','wma',
'zip'
);
$test=$_FILES["upfile"]["name"];
function getFileExt($file_name)
{
        while($dot = strpos($file_name, "."))
         {
                $file_name = substr($file_name, $dot+1);
         }
        return $file_name;
}
$test1= strtolower(getFileExt($test));
if(!in_array($test1, $uptypes))
//检查文件类型
{
echo "<font color='red'>不能上传此类型文件!</font>";
exit();
}
小结:直接检查文件的扩展名用$_FILES["upfile"]["name"];,而不是用这个$_FILES["upfile"]["type"];文件的类型来限制。

上传文件格式控制的困惑(application/octet-stream 限制不了BAT等格式上传)问题解决的更多相关文章

  1. HTML input-file 上传类型控制

    HTML input-file 上传类型控制 input file 属性 accept 表示可以选择的文件MIME类型,多个MIME类型用英文逗号分开,常用的MIME类型见下表. 只能选择png和gi ...

  2. HTML5: input:file上传类型控制

    ylbtech-HTML5: input:file上传类型控制   1. 一.input:file 属性返回顶部 一.input:file属性 属性值有以下几个比较常用: accept:表示可以选择的 ...

  3. HTML5的 input:file上传类型控制(转载)

    http://www.haorooms.com/post/input_file_leixing HTML5的 input:file上传类型控制 2014年8月29日 66352次浏览 一.input: ...

  4. php 上传文件大小控制配置文件中设置的

    Windows 环境下的修改方法 ================================================================第一步:修改在php5下POST文件大 ...

  5. element 文件上传大小控制

    1.页面代码 <el-upload :show-file-list="false" class="upload-demo" :before-upload= ...

  6. js上传文件带参数,并且,返回给前台文件路径,解析上传的xml文件,存储到数据库中

    ajaxfileupload.js jQuery.extend({ createUploadIframe: function(id, uri) { //create frame var frameId ...

  7. vue element多文件多格式上传文件,后台springmvc完整代码

       template:        <el-upload               class="upload-demo"               ref=&quo ...

  8. Ajax(form表单文件上传、请求头之contentType、Ajax传递json数据、Ajax文件上传)

    form表单文件上传 上菜 file_put.html <form action="" method="post" enctype="multi ...

  9. html + js 实现图片上传,压缩,预览及图片压缩后得到Blob对象继续上传问题

    先上效果 上传图片后(设置了最多上传3张图片,三张后上传按钮消失) 点击图片放大,可以使用删除和旋转按钮 (旋转功能主要是因为ios手机拍照后上传会有写图片被自动旋转,通过旋转功能可以调正) html ...

随机推荐

  1. Lua 第一个应用程序 Hello World

    lua 开发环境的搭建 现已windows系统为例,演示一下lua环境的搭建. Lua_v5.1.4 下载地址 http://code.google.com/p/luaforwindows/ 点击&q ...

  2. jQuery Mobile方向感应事件

    在现在的智能手机中,都有对方向变换的自动感知功能,比如当手机方向从水平方向切换到垂直方向时,则会触发该事件.在jQuery Mobile中,可以通过orientationchange事件进行绑定,并且 ...

  3. windows API 实现截图

    參考:http://bbs.csdn.net/topics/330154355 #include "stdio.h" #include "windows.h" ...

  4. [Javascript] The Array filter method

    One very common operation in programming is to iterate through an Array's contents, apply a test fun ...

  5. java float、double精度研究(转)

    在java中运行一下代码System.out.println(2.00-1.10);输出的结果是:0.8999999999999999很奇怪,并不是我们想要的值0.9 再运行如下代码:System.o ...

  6. JS火狐与IE的差别

    function isIE(){ //ie? ) return true; else return false; } if(!isIE()){ //firefox innerText define H ...

  7. 使用DOM4J解析XMl文件与读取XML文件

    XML文件 <?xml version="1.0" encoding="UTF-8"?> <bookstore> <book id ...

  8. eclipse Ctrl+1 没反应

    今天上午写代码,突然发现Ctrl+1没反应了,顿时无语.昨天还好好的,今天就不行了…… 无奈,只好在网上查了查,据说快捷键冲突的原因比较大. 于是我将Ctrl+1换成了Alt+1.在eclipse中测 ...

  9. 用Android-X86和VirtualBox打造高性能Android开发环境

    不知道有多少Android开发着对Android虚拟机的那悲剧的性能有意见,反正我的看法是:那速度实在是太坑爹了! 为什么Android虚拟机比iOS和WP7的虚拟机要慢很多呢?原因如下: 1. An ...

  10. iOS svn版本回退 cornerstone

    http://blog.csdn.net/x32sky/article/details/46866899   IOS开发中,SVN如何恢复到某一个版本(以Cornerstone为例) Cornerst ...