PHP开发中判断文件上传的方法

来源:爱站网时间:2021-01-29编辑:网友分享
程序员在实现数据仓库的时候,都会非常严格的判断用户提交的文件并且进行过滤,那么PHP开发中判断文件上传的方法,大家都知道吗?接下来爱站技术频道为大家做一下简单的解答。

程序员在实现数据仓库的时候,都会非常严格的判断用户提交的文件并且进行过滤,那么PHP开发中判断文件上传的方法,大家都知道吗?接下来爱站技术频道为大家做一下简单的解答。

如下html代码所示:

复制代码 代码如下:

文件上传:

 

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

复制代码 代码如下:


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

 

复制代码 代码如下:

 

//判断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压缩多个CSS和JS文件

下一篇:PHP开发中快速排序的算法详解

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载