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实现的获取网页中的图片并保存到本地的代码
Jan 05 PHP
linux系统上支持php的 iconv()函数的方法
Oct 01 PHP
解析php中session的实现原理以及大网站应用应注意的问题
Jun 17 PHP
PHP中imagick函数的中文解释
Jan 21 PHP
使用PHP处理数据库数据如何将数据返回客户端并显示当前状态
Feb 16 PHP
ThinkPHP使用Ueditor的方法详解
May 20 PHP
php解析xml 的四种简单方法(附实例)
Jul 11 PHP
php技巧小结【推荐】
Jan 19 PHP
PHP自动补全表单的两种方法
Mar 06 PHP
自制PHP框架之路由与控制器
May 07 PHP
PHP-FPM 的管理和配置详解
Feb 17 PHP
详解no input file specified 三种解决方法
Nov 29 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多文件上传下载示例分享
2014/02/20 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
PHP实现新型冠状病毒疫情实时图的实例
2020/02/04 PHP
js 浮动层菜单收藏
2009/01/16 Javascript
jquery 选择器部分整理
2009/10/28 Javascript
js 页面传参数时 参数值含特殊字符的问题
2009/12/13 Javascript
在多个页面使用同一个HTML片段《续》
2011/03/04 Javascript
jquery怎样实现ajax联动框(一)
2013/03/08 Javascript
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
求js数组的最大值和最小值的四种方法
2017/03/03 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
2017/04/04 Javascript
微信小程序 本地图片按照屏幕尺寸处理
2017/08/04 Javascript
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
使用ThinkJs搭建微信中控服务的实现方法
2019/08/08 Javascript
Element Rate 评分的使用方法
2020/07/27 Javascript
[46:59]完美世界DOTA2联赛PWL S2 GXR vs Ink 第二场 11.19
2020/11/20 DOTA
Python实现的一个自动售饮料程序代码分享
2014/08/25 Python
python批量修改文件名的实现代码
2014/09/01 Python
Python3 模块、包调用&路径详解
2017/10/25 Python
Python实现App自动签到领取积分功能
2018/09/29 Python
python对列进行平移变换的方法(shift)
2019/01/10 Python
Python字典循环添加一键多值的用法实例
2019/01/20 Python
python库matplotlib绘制坐标图
2019/10/18 Python
Python netmiko模块的使用
2020/02/14 Python
jupyter notebook插入本地图片的实现
2020/04/13 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
路易威登和香奈儿手袋:LuxeDH
2017/01/12 全球购物
普通院校学生的自荐信
2013/11/27 职场文书
运动会拉拉队口号
2014/06/09 职场文书
2015年司法所工作总结
2015/04/27 职场文书
正能量励志演讲稿三分钟(范文)
2019/07/11 职场文书
Python写情书? 10行代码展示如何把情书写在她的照片里
2022/04/21 Python
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers