PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例


Posted in PHP onMarch 01, 2019

本文实例讲述了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;
  }
  //......
}

PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例

上图是打印出来的$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;
}

PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP实现采集程序原理和简单示例代码
Mar 18 PHP
Discuz板块横排显示图片的实现方法
May 28 PHP
PHP中的MYSQL常用函数(php下操作数据库必备)
Sep 12 PHP
php调用mysql数据 dbclass类
May 07 PHP
PHP设计模式之解释器模式的深入解析
Jun 13 PHP
解析zend Framework如何自动加载类
Jun 28 PHP
PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)
Jul 02 PHP
Linux下php5.4启动脚本
Aug 03 PHP
thinkphp在模型中自动完成session赋值示例代码
Sep 09 PHP
使用JavaScript创建新样式表和新样式规则
Jun 14 PHP
PHP使用栈解决约瑟夫环问题算法示例
Aug 27 PHP
jQuery+PHP实现图片上传并提交功能
Jul 27 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
Mar 01 #PHP
PHP中“=>
Mar 01 #PHP
PHP htmlspecialchars_decode()函数用法讲解
Mar 01 #PHP
PHP递归的三种常用方式
Feb 28 #PHP
PHP递归算法的简单实例
Feb 28 #PHP
PHP根据key删除数组中指定的元素
Feb 28 #PHP
PHP去除空数组且数组键名重置的讲解
Feb 28 #PHP
You might like
php中文字符截取防乱码
2008/03/28 PHP
PHP向socket服务器收发数据的方法
2015/01/24 PHP
php批量删除超链接的实现方法
2015/10/19 PHP
又拍云异步上传实例教程详解
2016/04/19 PHP
PHP+RabbitMQ实现消息队列的完整代码
2019/03/20 PHP
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
js切换div css注意的细节
2012/12/10 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
2015/06/19 Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
2015/08/12 Javascript
使用JavaScript实现弹出层效果的简单实例
2016/05/31 Javascript
基于BootStrap实现简洁注册界面
2017/07/20 Javascript
Vue官方推荐AJAX组件axios.js使用方法详解与API
2018/10/09 Javascript
C#程序员入门学习微信小程序的笔记
2019/03/05 Javascript
详解原生JS回到顶部
2019/03/25 Javascript
javascript随机变色实例代码
2019/10/15 Javascript
node+vue实现文件上传功能
2020/05/28 Javascript
如何在面试中手写出javascript节流和防抖函数
2020/10/22 Javascript
详解基于element的区间选择组件校验(交易金额)
2021/01/07 Javascript
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
Python编程django实现同一个ip十分钟内只能注册一次
2017/11/03 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
python实现简易淘宝购物
2019/11/22 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
2020/11/24 Python
介绍一下gcc特性
2012/01/20 面试题
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
工程管理造价应届生求职信
2013/11/13 职场文书
综合办公室主任职责
2013/12/16 职场文书
批评与自我批评材料
2014/02/15 职场文书
相亲大会策划方案
2014/06/05 职场文书
学校领导班子对照检查材料
2014/08/28 职场文书
2014年科普工作总结
2014/12/06 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书
植物园观后感
2015/06/11 职场文书
Jupyter notebook 更改文件打开的默认路径操作
2021/05/21 Python