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 相关文章推荐
PHPlet在Windows下的安装
Oct 09 PHP
无数据库的详细域名查询程序PHP版(1)
Oct 09 PHP
PHP读取文件并可支持远程文件的代码分享
Oct 03 PHP
基于PHP magic_quotes_gpc的使用方法详解
Jun 24 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
May 09 PHP
php中使用array_filter()函数过滤空数组的实现代码
Aug 19 PHP
php批量删除数据库下指定前缀的表以prefix_为例
Aug 24 PHP
php写入数据到CSV文件的方法
Mar 14 PHP
PHP使用mysqldump命令导出数据库
Apr 14 PHP
php通过curl模拟登陆DZ论坛
May 11 PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
Mar 21 PHP
Laravel框架验证码类用法实例分析
Sep 11 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中三个等号(===)和两个等号(==)的区别
2013/08/06 PHP
让CodeIgniter数据库缓存自动过期的处理的方法
2014/06/12 PHP
ThinkPHP Mobile使用方法简明教程
2014/06/18 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
2013/09/30 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
2013/11/18 Javascript
利用js(jquery)操作Cookie的方法说明
2013/12/19 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
jQuery.prop() 使用详解
2015/07/19 Javascript
javascript数组去重小结
2016/03/07 Javascript
浅谈js中的in-for循环
2016/06/28 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
2016/06/29 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
2016/08/08 Javascript
Bootstrap3 Grid system原理及应用详解
2016/09/30 Javascript
js表单登陆验证示例
2016/10/19 Javascript
深入理解jquery中的each用法
2016/12/14 Javascript
react配合antd组件实现的管理系统示例代码
2018/04/24 Javascript
vue动态注册组件实例代码详解
2019/05/30 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
2019/11/08 Javascript
[50:02]完美世界DOTA2联赛PWL S2 Magma vs FTD 第三场 11.29
2020/12/03 DOTA
Python定时器实例代码
2017/11/01 Python
python thrift搭建服务端和客户端测试程序
2018/01/17 Python
python实现简单淘宝秒杀功能
2018/05/03 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
django利用request id便于定位及给日志加上request_id
2018/08/26 Python
Django 大文件下载实现过程解析
2019/08/01 Python
python 获取当前目录下的文件目录和文件名实例代码详解
2020/03/10 Python
大学生求职推荐信
2013/11/27 职场文书
后勤工作职责
2013/12/22 职场文书
大专毕业自我鉴定
2014/02/04 职场文书
学校联谊活动方案
2014/02/15 职场文书
2014年五四青年节演讲稿范文
2014/04/22 职场文书
2015元旦晚会主持人开场白+结束语
2014/12/14 职场文书
2015年学校图书室工作总结
2015/05/19 职场文书
早恋主题班会
2015/08/14 职场文书
python 如何在list中找Topk的数值和索引
2021/05/20 Python