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 相关文章推荐
第二节--PHP5 的对象模型
Nov 16 PHP
微博短链接算法php版本实现代码
Sep 15 PHP
php从数组中随机抽取一些元素的代码
Nov 05 PHP
php图片加水印原理(超简单的实例代码)
Jan 18 PHP
PHP防止跨域提交表单
Nov 01 PHP
PHP错误和异长常处理总结
Mar 06 PHP
PHPStrom中实用的功能和快捷键大全
Sep 23 PHP
PHP浮点数的一个常见问题
Mar 10 PHP
CI框架AR数据库操作常用函数总结
Nov 21 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
Dec 12 PHP
php处理多图上传压缩代码功能
Jun 13 PHP
laravel框架模型和数据库基础操作实例详解
Jan 25 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多个版本的分析解释
2011/07/21 PHP
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
2011/11/02 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
php基于协程实现异步的方法分析
2019/07/17 PHP
地址栏上的一段语句,改变页面的风格。(教程)
2008/04/02 Javascript
Jquery在IE7下无法使用 $.ajax解决方法
2009/11/11 Javascript
jquery的键盘事件修改代码
2011/02/24 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
javascript计算当月剩余天数(天数计算器)示例代码
2014/01/09 Javascript
jQuery DOM插入节点操作指南
2015/03/03 Javascript
使用JavaScript刷新网页的方法
2015/06/04 Javascript
JS实现鼠标移上去显示图片或微信二维码
2016/12/14 Javascript
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
微信小程序页面滑动屏幕加载数据效果
2020/11/16 Javascript
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
vue中将html字符串转换成html后遇到的问题小结
2018/12/10 Javascript
详解Jest结合Vue-test-utils使用的初步实践
2019/06/27 Javascript
js实现转动骰子模型
2019/10/24 Javascript
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
[01:32]TI奖金增速竟因它再创新高!DOTA2勇士令状不朽珍藏Ⅰ饰品欣赏
2018/05/18 DOTA
遍历python字典几种方法总结(推荐)
2016/09/11 Python
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
解决python nohup linux 后台运行输出的问题
2018/05/11 Python
使用Python开发SQLite代理服务器的方法
2018/12/07 Python
Python中的整除和取模实例
2020/06/03 Python
HTML5中的拖放实现详解
2017/08/23 HTML / CSS
个人简历自我鉴定
2013/10/11 职场文书
2014年学校工会工作总结
2014/12/06 职场文书
如何写辞职书
2015/02/26 职场文书
天那边观后感
2015/06/09 职场文书
小王子读书笔记
2015/06/29 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书
MySQL基础(二)
2021/04/05 MySQL
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL
PHP中多字节字符串操作实例详解
2021/08/23 PHP
常用的文件对应的MIME类型汇总
2022/04/26 HTML / CSS