PHP文件上传判断file是否己选择上传文件的方法


Posted in PHP onNovember 10, 2014

本文实例讲述了PHP文件上传判断file是否己选择上传文件的方法。分享给大家供大家参考。具体方法如下:

一个合格的程序员在实现数据入库中时我们都会有一些非常严密的过滤与数据规则,像我们文件上传时在前段要判断用户是否选择上传文件同时在后台也可判断是否有上传的文件,本文实例即对此做一较为深入的分析。

如下html代码所示:

<form action="?" method="post" enctype='multipart/form-data'>

文件上传:<input type="file" name="file" id="file"/>

<input type="submit" id="send" value="提交"/>

</form>

我们最常用的在前端简单的进行判断

<script>

var send=document.getElementById("send");

send.onclick=function(){

var file=document.getElementById("file").value;

if(file.length<1){

alert('请选择图片');

return false;

}

}

</script>

如果要做真正的安全我们需要在后台进入判断处理
<?php

//判断pic文件框是否已经选择文件

if(!empty($_FILES['file']['tmp_name'])){

echo'已选择文件';

}else{

echo'请选择文件';

}

//PS:$_FILES后面的['tmp_name']一定不要忘写,它表示是一个临时的意思

?>

安例分析

js判断是比较笼统了我们只是使用了file=document.getElementById("file").value;来判断file有没有值或不为空了,这样只要输入一个数字就可以直接提交了,所以我们需要进入如上传文件的用户名限制

function CheckWorkFile()

{

var obj=document.getElementById('fuMain');

if(obj.value=='')

{

alert('请选择要上传的作业书文件');

return false;

}

var stuff=obj.value.match(/^(.*)(\.)(.{1,8})$/)[3];

if(stuff!='doc')

{

alert('文件类型不正确,请选择.doc文件');

return false;

}

return true;

}

对于php处理我们也只使用了if(!empty($_FILES['file']['tmp_name'])){来判断不为空了,其实这样也是不合理的
如我们可以如此处理
function file_type($filename)

{

    $file = fopen($filename, "rb");

    $bin = fread($file, 2); //只读2字节

    fclose($file);

    $strInfo = @unpack("C2chars", $bin);

    $typeCode = intval($strInfo['chars1'].$strInfo['chars2']);

    $fileType = '';

    switch ($typeCode)

    {

        case 7790:

            $fileType = 'exe';

            break;

        case 7784:

            $fileType = 'midi';

            break;

        case 8297:

            $fileType = 'rar';

            break;        

  case 8075:

            $fileType = 'zip';

            break;

        case 255216:

            $fileType = 'jpg';

            break;

        case 7173:

            $fileType = 'gif';

            break;

        case 6677:

            $fileType = 'bmp';

            break;

        case 13780:

            $fileType = 'png';

            break;

        default:

            $fileType = 'unknown: '.$typeCode;

    }

 //Fix

 if ($strInfo['chars1']=='-1' AND $strInfo['chars2']=='-40' ) return 'jpg';

 if ($strInfo['chars1']=='-119' AND $strInfo['chars2']=='80' ) return 'png';

    return $fileType;

}

echo file_type('start.php');   // 6063 or 6033

这样我们可以限制上传文件类型的同时也给程序做了一个安全处理

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
Mysql和网页显示乱码解决方法集锦
Mar 27 PHP
php执行sql语句的写法
Mar 10 PHP
php 无极分类(递归)实现代码
Jan 05 PHP
Notice: Trying to get property of non-object problem(PHP)解决办法
Mar 11 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
Jun 20 PHP
php json转换成数组形式代码分享
Nov 10 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
Nov 19 PHP
新浪微博OAuth认证和储存的主要过程详解
Mar 27 PHP
php使用APC实现实时上传进度条功能
Oct 26 PHP
php中请求url的五种方法总结
Jul 13 PHP
php 读写json文件及修改json的方法
Mar 07 PHP
Cookie跨域问题解决方案代码示例
Nov 24 PHP
php数组操作之键名比较与差集、交集赋值的方法
Nov 10 #PHP
php json转换成数组形式代码分享
Nov 10 #PHP
PHP冒泡算法详解(递归实现)
Nov 10 #PHP
PHP字符串word末字符实现大小写互换的方法
Nov 10 #PHP
PHP 快速排序算法详解
Nov 10 #PHP
PHP基于CURL进行POST数据上传实例
Nov 10 #PHP
ci检测是ajax还是页面post提交数据的方法
Nov 10 #PHP
You might like
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
2007/08/19 PHP
php获取本地图片文件并生成xml文件输出具体思路
2013/04/27 PHP
关于PHP开发的9条建议
2015/07/27 PHP
PHP面向对象程序设计实例分析
2016/01/26 PHP
ThinkPHP项目分组配置方法分析
2016/03/23 PHP
Js之软键盘实现(js源码)
2007/01/30 Javascript
IE 条件注释详解总结(附实例代码)
2009/08/29 Javascript
jquery photoFrame 图片边框美化显示插件
2010/06/28 Javascript
JavaScript中清空数组的三种方法分享
2011/04/07 Javascript
javascript动态设置样式style实例分析
2015/05/13 Javascript
基于JS实现省市联动效果代码分享
2016/06/06 Javascript
jQuery解决$符号命名冲突
2016/06/18 Javascript
js轮盘抽奖实例分析
2020/04/17 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
2021/02/25 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
xmlplus组件设计系列之树(Tree)(9)
2017/05/02 Javascript
详解vue express启动数据服务
2017/07/05 Javascript
vue中动态添加class类名的方法
2018/09/05 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
vue+element实现表单校验功能
2019/05/20 Javascript
JS字符串与二进制的相互转化实例代码详解
2019/06/28 Javascript
[04:32]玩具屠夫中文语音节选
2020/08/23 DOTA
python获取本机mac地址和ip地址的方法
2015/04/29 Python
python爬虫基本知识
2018/03/05 Python
Selenium鼠标与键盘事件常用操作方法示例
2018/08/13 Python
Python玩转加密的技巧【推荐】
2019/05/13 Python
python爬虫租房信息在地图上显示的方法
2019/05/13 Python
在pycharm中关掉ipython console/PyDev操作
2020/06/09 Python
Python第三方包PrettyTable安装及用法解析
2020/07/08 Python
python实现快速文件格式批量转换的方法
2020/10/16 Python
主管职责范文
2013/11/09 职场文书
幼儿园大班评语大全
2014/04/17 职场文书
超市开业庆典活动策划方案
2014/09/15 职场文书
2014年文明创建工作总结
2014/11/25 职场文书
Python中os模块的简单使用及重命名操作
2021/04/17 Python
Python数据可视化之Seaborn的安装及使用
2022/04/19 Python