运行报错,显示在第三行,php表达式包含无效操作实在,没有找到

来源:2-3 PHP单文件上传函数的封装

充电_ing

2019-04-27 20:22

<?php 
function _upload($fileinfo,
    $ext=pathinfo($file['name'],
    PATHINFO_EXTENSION),
    $select_ext=array('jpg','jpeg','mp4','png','gif'),
    $max=1048576,
    $path='uploads',
    $flase=true,
    $hid=md5(uniqid(microtime(true),true)),
    $destination=$path.'/'.$hid.'.'.$ext)
    {
    if ($file['error']>0) {
    switch ($file['error']) {
    case 1:
    $ess='有错误发生! upload_err_ini_size 错误号为1 文件超过了php.ini 中 upload_max_filesize 限制的值';
        break;
    case 2:
    $ess='有错误发生! upload_err_form_size 错误号为2 文件超过了html表单中max_file_size 限制的值';
        break;
    case 3:
    $ess='有错误发生! upload_err_partial 其值为3 只有部分文件被上传';
        break;
    case 4:
    $ess='有错误发生! upload_err_no_file 其值为4,没有文件被上传';
        break;
    case 6:
    $ess='有错误发生! upload_err_no_tmp_dir 其值为6,找不到临时文件';
        break;
    case 7:
    $ess='有错误发生! upload_err_cant_write 其值为7,文件写入失败';
        break;
    case 8:
    $ess='有错误发生! upload_err_extension 其值为8,上传文件被PHP扩展程序中断';
    }
    exit($ess);
    }
    //判断上传的扩展名是否为一个数组
    if (!is_array($select_ext)) {
        exit('非法扩展名');
    }
    //判断后缀是否符合要求
    if (!in_array($ext,$select_ext)) {
        exit('上传格式不符合规定,请上传jpg,png,gif,mp4类型文件');
    }
    //判断是否为真实的图片文件
    if($flase){
    if(!getimagesize($file['tmp_name'])){
        exit('文件非法!');
    }
    }
    //限制文件大小
    if ($file['siez']>$max) {
        exit('文件不能超过2M');
    }//如果不存在文件夹,则创建
    if(!file_exists($path)){
        mkdir($path,0777,true);
        chmod($paht,0777);
    }
    if (move_uploaded_file($file['tmp_name'],$destination)) {
        exit('文件'.$destination.'上传成功!');
    }else{
        exit('文件'.$destination.'上传失败!');
    }
    return $destination;
}
?>


写回答 关注

2回答

  • 充电_ing
    2019-05-06 22:49:21

    找到答案了,给函数传参数不能传递哈希值:md5(uniqid(microtime(true),true));
    以及$destination移到函数体内就好了

  • 丿旧城旧人
    2019-05-05 15:44:10

    你不贴错误截图,如何排查

PHP实现文件上传与下载

本课程讲解了文件上传的原理和配置,学会两种方式实现文件上传与下载

43735 学习 · 328 问题

查看课程

相似问题