PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > 开发编程 > PHP教程 > 正文

    PHP判断文件上传file是否为空

    作者:w634381967来源:网络浏览:时间:2020-09-30 00:07:50我要评论
    导读:实现数据入库中时我们都会有一些非常严密的过滤与数据规则了,像我们文件上传时在前段要判断用户是否选择上传文件同时在后台也可判断是否有...
    实现数据入库中时我们都会有一些非常严密的过滤与数据规则了,像我们文件上传时在前段要判断用户是否选择上传文件同时在后台也可判断是否有上传的文件了,下面我们就一起来看看相关例子吧。
    如下html代码如

     
    复制代码 代码如下:
    <formaction="?"method="post"enctype='multipart/form-data'>
    文件上传:<inputtype="file"name="file"id="file"/>
    <inputtype="submit"id="send"value="提交"/>
    </form>

    我们最常用的在前端简单的进行判断
     
    复制代码 代码如下:
    <script>
    varsend=document.getElementById("send");
    send.onclick=function(){
    varfile=document.getElementById("file").value;
    if(file.length<1){
    alert('请选择图片');
    returnfalse;
    }
    }
    </script>

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

     
    复制代码 代码如下:
    <?php
    //判断pic文件框是否已经选择文件
    if(!empty($_FILES['file']['tmp_name'])){
    echo'已选择文件';
    }else{
    echo'请选择文件';
    }
    //PS:$_FILES后面的['tmp_name']一定不要忘写,它表示是一个临时的意思
    ?>

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


     
    复制代码 代码如下:
    functionCheckWorkFile()
    {
    varobj=document.getElementById('fuMain');
    if(obj.value=='')
    {
    alert('请选择要上传的作业书文件');
    returnfalse;
    }
    varstuff=obj.value.match(/^(.*)(\.)(.{1,8})$/)[3];
    if(stuff!='doc')
    {
    alert('文件类型不正确,请选择.doc文件');
    returnfalse;
    }
    returntrue;
    }

    对于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

    这样我们可以限制上传文件类型的同时也给程序做了一个安全处理了哦
    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-10-1255-1.html
    相关热词搜索: