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 相关文章推荐
一个ftp类(ini.php)
Oct 09 PHP
搜索和替换文件或目录的一个好类--很实用
Oct 09 PHP
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
Jun 02 PHP
让CodeIgniter数据库缓存自动过期的处理的方法
Jun 12 PHP
ThinkPHP CURD方法之limit方法详解
Jun 18 PHP
ThinkPHP上使用多说评论插件的方法
Oct 31 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
Apr 15 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
Nov 17 PHP
PHP实现的进度条效果详解
May 03 PHP
PHP实现的多文件上传类及用法示例
May 06 PHP
利用PHP生成静态html页面的原理
Sep 30 PHP
PHP实现的文件浏览器功能简单示例
Sep 12 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使用CURL模拟登录的方法
2015/07/08 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
ZendFramework框架实现连接两个或多个数据库的方法
2016/12/08 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
laravel ORM 只开启created_at的几种方法总结
2018/01/29 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
javascript中万恶的function实例分析
2011/05/25 Javascript
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
解析URI与URL之间的区别与联系
2013/11/22 Javascript
js获取判断上传文件后缀名的示例代码
2014/02/19 Javascript
在HTML代码中使用JavaScript代码的例子
2014/10/16 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
jQuery控制元素隐藏和显示
2017/03/03 Javascript
详解Vuex中mapState的具体用法
2017/09/28 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
vue使用axios时关于this的指向问题详解
2017/12/22 Javascript
vue.js响应式原理解析与实现
2020/06/22 Javascript
详解React项目中碰到的IE问题
2019/03/14 Javascript
JS中数组实现代码(倒序遍历数组,数组连接字符串)
2019/12/29 Javascript
基于vue 动态菜单 刷新空白问题的解决
2020/08/06 Javascript
[20:57]Ti4主赛事第三天开幕式
2014/07/21 DOTA
[02:01]BBC DOTA2国际邀请赛每日综述:八强胜者组鏖战,中国队喜忧参半
2014/07/19 DOTA
[00:36]DOTA2风云人物相约完美“圣”典 12月17日不见不散
2016/11/30 DOTA
python正则表达式中的括号匹配问题
2014/12/14 Python
python利用MethodType绑定方法到类示例代码
2017/08/27 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
CSS3实现div从下往上滑入滑出效果示例
2020/04/28 HTML / CSS
html5中的一些标签学习(心得)
2016/10/18 HTML / CSS
大学生自我评价怎样写好
2013/10/23 职场文书
营销总经理岗位职责
2014/02/02 职场文书
班干部演讲稿
2014/04/24 职场文书
2014年学校总务处工作总结
2014/12/08 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
2015年办公室个人工作总结
2015/04/20 职场文书
企业转让协议书(范文2篇)
2019/08/15 职场文书
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers