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 相关文章推荐
PHP防CC攻击实现代码
Dec 29 PHP
PHP字符串的连接的简单实例
Dec 30 PHP
destoon会员注册提示“数据校验失败(2)”解决方法
Jun 21 PHP
PHP以mysqli方式连接类完整代码实例
Jul 15 PHP
php实现专业获取网站SEO信息类实例
Apr 02 PHP
Centos6.5和Centos7 php环境搭建方法
May 27 PHP
Yii2创建控制器(createController)方法详解
Jul 23 PHP
php使用高斯算法实现图片的模糊处理功能示例
Nov 11 PHP
php文件包含目录配置open_basedir的使用与性能详解
Apr 03 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
Oct 16 PHP
在 Laravel 6 中缓存数据库查询结果的方法
Dec 11 PHP
PHP高并发和大流量解决方案整理
Dec 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
smarty静态实验表明,网络上是错的~呵呵
2006/11/25 PHP
php设计模式 Mediator (中介者模式)
2011/06/26 PHP
php获取通过http协议post提交过来xml数据及解析xml
2012/12/16 PHP
php页面跳转代码 输入网址跳转到你定义的页面
2013/03/28 PHP
利用PHP将部分内容用星号替换
2020/04/21 PHP
PHP-FPM运行状态的实时查看及监控详解
2016/11/18 PHP
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
2014/10/29 Javascript
script标签属性用type还是language
2015/01/21 Javascript
实现placeholder效果的方案汇总
2015/06/11 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
学习JavaScript设计模式(继承)
2015/11/26 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
TypeScript学习之强制类型的转换
2016/12/27 Javascript
jquery简单实现纵向的无缝滚动代码实例
2019/04/01 jQuery
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
2020/02/14 Javascript
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
Python Flask-web表单使用详解
2017/11/18 Python
python如何为被装饰的函数保留元数据
2018/03/21 Python
influx+grafana自定义python采集数据和一些坑的总结
2018/09/17 Python
Python实现求两个数组交集的方法示例
2019/02/23 Python
使用python判断jpeg图片的完整性实例
2019/06/10 Python
Python利用神经网络解决非线性回归问题实例详解
2019/07/19 Python
python argparser的具体使用
2019/11/10 Python
用CSS3绘制三角形的简单方法
2015/07/17 HTML / CSS
详解如何通过H5(浏览器/WebView/其他)唤起本地app
2017/12/11 HTML / CSS
自荐信要包含哪些内容
2013/11/06 职场文书
简单的个人租房协议书范本
2014/11/26 职场文书
2015年餐厅服务员工作总结
2015/04/23 职场文书
高中优秀作文(范文)
2019/08/15 职场文书
话题作文之生命的旋律
2019/12/17 职场文书
Python利用folium实现地图可视化
2021/05/23 Python
利用python Pandas实现批量拆分Excel与合并Excel
2021/05/23 Python
Spring Boot 启动、停止、重启、状态脚本
2021/06/26 Java/Android
Mac电脑OS系统下安装Nginx的详细教程
2022/04/14 Servers