zoukankan      html  css  js  c++  java
  • php用jquery-ajax上传多张图片限制图片大小

    php用jquery-ajax上传多张图片限制图片大小

    /**
     * 上传图片,默认大小限制为3M
     * @param String $fileInputName
     * @param number $size
     */
    public function processUpload($fileInputName,$size=3145728)
    {
        $result = array('status'=>0, 'errcode'=>null, 'group'=>'', 'path'=>'', 'site'=>'', 'size'=>0);
        $file = $_FILES[$fileInputName];
        //用filesize函数获取文件大小,filesize这个内置函数不能直接放$fileInputName或者$file['name'],要用$file['tmp_name'],或者直接用$file['size']
        $bytes = $file['size'];
        if($bytes==0 || $bytes > $size){
            $result['status'] = -1;
            $result['size'] = $bytes;
            return $result;
        }
        $fileMIME = $file['type'];
        $originFilename = $file['name'];
        $tmpFileDir = C('FILE_UPLOAD_SWAP_DIR');
        $fileName = CommonUtil::generateUUid();
        switch ($fileMIME)
        {
            case 'image/jpeg': //jpeg jpg jpe
                $tmpFile = $tmpFileDir.$fileName.'.jpg';
                break;
            case 'application/x-jpg':
                $tmpFile = $tmpFileDir.$fileName.'.jpg';
                break;
            default:
                $result['status'] = 1;
                $result['group'] = $tmpFileDir.$fileName;
                $result['site'] = $fileMIME;
                return $result;
        }
        //......
    }

     上图是打印出来的$file属性
     
    下面是控制器代码
    /**
     * 上传多张图片公共方法
     * fileName 为input的name属性
     */
    public function doUploadJpgMultiple()
    {
        $filename = I('get.fileName','');
        $uploader = new UploadJpgUtil();
        $result = $uploader->processUpload($filename);
        echo json_encode($result);
    }

    下面是ajax代码

    //一个页面上传多张图片
    function ajaxUploadMultiple(j) {
        $.ajaxFileUpload({
            url : base_url+"/UploadImgUtil/doUploadJpgMultiple?fileName=fileToUpload"+ j,
            secureuri : false,
            fileElementId : "fileToUpload"+ j,// file控件id
            type: "POST",
            dataType: 'json',
            success : function(data, status) {
                if (typeof (data.status) != 'undefined') {
                    if (data.status == -1) {
                        alert('上传图片不能超过规定大小');
                    }else if (data.status == 1) {
                        alert('上传图片不是JPG格式');
                    }else if (data.status != 0) {
                        alert('status='+data.status + ' errcode=' + data.errcode);
                    }
                    else {
                        var fileUrl = 'http://' + data.site + '/' + data.group
                            + '/' + data.path;
                        $('#flatImgthumb'+ j).attr('src', fileUrl);
                        $('#hidFlatImgthumb'+ j).val(data.group + '/' + data.path);
                    }
                }
            },
            error : function(data, status, e) {
                alert(e);
            }
        });
        return false;
    }

     

  • 相关阅读:
    TensorFlow 用神经网络解决非线性问题
    找第一个只出现一次的字符
    scanf("%[^ ]",str)
    求第n个质数
    得到任意数字的各个数位
    Tensorflow 对上一节神经网络模型的优化
    Tensorflow 安装 和 初识
    算法竞赛入门 (一)语言篇 数组和字符串 2
    char* a = "abc" 和 char a[] = "abc" 之间的区别
    Python实现英文文章加密传送,收到后进行解密
  • 原文地址:https://www.cnblogs.com/zdz8207/p/php-jquery-ajax-upload-filesize.html
Copyright © 2011-2022 走看看