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自动选择 连接本地还是远程数据库
Dec 02 PHP
php explode函数实例代码
Feb 27 PHP
Laravel 4 初级教程之安装及入门
Oct 30 PHP
Apache连接PHP后无法启动问题解决思路
Jun 18 PHP
Joomla开启SEF的方法
May 04 PHP
一波PHP中cURL库的常见用法代码示例
May 06 PHP
php中bind_param()函数用法分析
Mar 28 PHP
PHP编程快速实现数组去重的方法详解
Jul 22 PHP
PHP面向对象程序设计之多态性的应用示例
Dec 19 PHP
php写app用的框架整理
Sep 29 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
Dec 20 PHP
PHP中SESSION过期设置
Mar 09 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获取photoshop写入图片文字信息的方法
2015/03/31 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
windows系统php环境安装swoole具体步骤
2021/03/04 PHP
学习YUI.Ext第七日-View&JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
JavaScript 密码强度判断代码
2009/09/05 Javascript
Tips 带三角可关闭的文字提示
2010/10/06 Javascript
jQuery实现可展开合拢的手风琴面板菜单
2015/09/15 Javascript
javascript DIV实现跟随鼠标移动
2020/03/19 Javascript
在windows上用nodejs搭建静态文件服务器的简单方法
2016/08/11 NodeJs
JavaScript省市级联下拉菜单实例
2017/02/14 Javascript
利用ES6语法重构React组件详解
2017/03/02 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
2018/07/25 Javascript
详解vue几种主动刷新的方法总结
2019/02/19 Javascript
node.JS二进制操作模块buffer对象使用方法详解
2020/02/06 Javascript
javascript用defineProperty实现简单的双向绑定方法
2020/04/03 Javascript
javascript实现评分功能
2020/06/24 Javascript
python实现求最长回文子串长度
2018/01/22 Python
Python发送http请求解析返回json的实例
2018/03/26 Python
python的pip安装以及使用教程
2018/09/18 Python
python的turtle库使用详解
2019/05/10 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
2019/08/02 Python
Python3+Selenium+Chrome实现自动填写WPS表单
2020/02/12 Python
基于CSS3制作立体效果导航菜单
2016/01/12 HTML / CSS
瑞贝卡·明可弗包包官网:Rebecca Minkoff
2016/07/21 全球购物
集世界奢侈品和设计师品牌的意大利精品买手店:Tessabit
2019/08/17 全球购物
四年级学生评语大全
2014/04/21 职场文书
学习考察心得体会
2014/09/04 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
2015学校六五普法工作总结
2015/04/22 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
毕业论文致谢部分怎么写
2015/05/14 职场文书
2016秋季运动会开幕词
2016/03/04 职场文书
员工工作心得体会
2019/05/07 职场文书
浅谈Redis存储数据类型及存取值方法
2021/05/08 Redis
python使用pycharm安装pyqt5以及相关配置
2022/04/22 Python