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源代码
Oct 09 PHP
我的论坛源代码(六)
Oct 09 PHP
PHP+ajax 无刷新删除数据
Feb 20 PHP
PHP PDO函数库详解
Apr 27 PHP
PHP 魔术函数使用说明
May 14 PHP
ezSQL PHP数据库操作类库
May 16 PHP
thinkphp模板继承实例简述
Nov 26 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
Mar 01 PHP
php简单获取复选框值的方法
May 11 PHP
java微信开发之上传下载多媒体文件
Jun 24 PHP
php pdo操作数据库示例
Mar 10 PHP
详解php实现页面静态化原理
Jun 21 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/07/29 PHP
php XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
Drupal7中常用的数据库操作实例
2014/03/02 PHP
ThinkPHP模版中导入CSS和JS文件的方法
2014/11/29 PHP
php简单实现sql防注入的方法
2016/04/22 PHP
php自定义函数实现汉字转换utf8编码的方法
2016/09/29 PHP
PHP开发API接口签名生成及验证操作示例
2020/05/27 PHP
JQuery循环滚动图片代码
2011/12/08 Javascript
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
2013/01/24 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
Nodejs如何搭建Web服务器
2016/03/28 NodeJs
JS 清除字符串数组中,重复元素的实现方法
2016/05/24 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
2016/08/05 Javascript
浅谈JavaScript 中有关时间对象的方法
2016/08/15 Javascript
JS实现超简单的汉字转拼音功能示例
2016/12/22 Javascript
JS实现移动端实时监听输入框变化的实例代码
2017/04/12 Javascript
Mac系统下Webstorm快捷键整理大全
2017/05/28 Javascript
jQuery实现table表格checkbox全选的方法分析
2018/07/04 jQuery
jquery判断滚动条距离顶部的距离方法
2018/09/05 jQuery
手把手教你写一个微信小程序(推荐)
2018/10/17 Javascript
vue项目引入Iconfont图标库的教程图解
2018/10/24 Javascript
vuex实现像调用模板方法一样调用Mutations方法
2019/11/06 Javascript
BootstrapValidator实现表单验证功能
2019/11/08 Javascript
[01:27]2014DOTA2展望TI 剑指西雅图IG战队专访
2014/06/30 DOTA
Python中无限元素列表的实现方法
2014/08/18 Python
python 实现tar文件压缩解压的实例详解
2017/08/20 Python
Python实现的破解字符串找茬游戏算法示例
2017/09/25 Python
基于Python os模块常用命令介绍
2017/11/03 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
2020/05/21 Python
Python修改DBF文件指定列
2020/12/19 Python
css3新增颜色表示方式分享
2014/04/15 HTML / CSS
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
加热夹克:RAVEAN
2018/10/19 全球购物
高二化学教学反思
2014/01/30 职场文书
计算机网络工程专业职业生涯规划书
2014/03/10 职场文书
MySQL表字段数量限制及行大小限制详情
2022/07/23 MySQL