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 相关文章推荐
vBulletin Forum 2.3.xx SQL Injection
Oct 09 PHP
3.从实例开始
Oct 09 PHP
php 购物车完整实现代码
Jun 05 PHP
PHP获取一年中每个星期的开始和结束日期的方法
Feb 12 PHP
使用XHGui来测试PHP性能的教程
Jul 03 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
Jul 13 PHP
php使用get_class_methods()函数获取分类的方法
Jul 20 PHP
php微信公众平台开发(三)订阅事件处理
Dec 06 PHP
PHP去除字符串最后一个字符的三种方法实例
Mar 01 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 PHP
php判断电子邮件是否正确方法
Dec 04 PHP
PHP 对接美团大众点评团购券(门票)的开发步骤
Apr 03 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
德生S2000收音机更换“钕铁硼”全频扬声器
2021/03/02 无线电
PHP 第二节 数据类型之转换
2012/04/28 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
2012/07/19 PHP
php格式化金额函数分享
2015/02/02 PHP
PHP中Static(静态)关键字功能与用法实例分析
2019/04/05 PHP
prototype 学习笔记整理
2009/07/17 Javascript
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
jquery插件冲突(jquery.noconflict)解决方法分享
2014/03/20 Javascript
JavaScript实现拖拽网页内元素的方法
2015/04/15 Javascript
浅谈jquery事件处理
2015/04/24 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
2016/03/25 Javascript
原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
2016/10/29 Javascript
vue使用stompjs实现mqtt消息推送通知
2017/06/22 Javascript
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
微信小程序页面生命周期详解
2018/01/31 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
python缩进区别分析
2014/02/15 Python
跟老齐学Python之永远强大的函数
2014/09/14 Python
Python装饰器decorator用法实例
2014/11/10 Python
Python 搭建Web站点之Web服务器网关接口
2016/11/06 Python
Python中生成Epoch的方法
2017/04/26 Python
Python实现批量压缩图片
2018/01/25 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
2019/05/16 Python
python中的decimal类型转换实例详解
2019/06/26 Python
Python xlrd excel文件操作代码实例
2020/03/10 Python
django queryset 去重 .distinct()说明
2020/05/19 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
2020/07/02 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
python中scipy.stats产生随机数实例讲解
2021/02/19 Python
美国女孩服装购物网站:Justice
2017/03/04 全球购物
英国景点门票网站:attractiontix
2019/08/27 全球购物
茶叶店创业计划书范文
2014/01/19 职场文书
法律七进实施方案
2014/03/15 职场文书
关于Javascript闭包与应用的详解
2021/04/22 Javascript
MySql开发之自动同步表结构
2021/05/28 MySQL