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
动态生成gif格式的图像要注意?
Oct 09 PHP
php 获取页面中指定内容的实现类
Jan 23 PHP
PHP父类调用子类方法的代码例子
Apr 09 PHP
php使用mkdir创建多级目录入门例子
May 10 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
May 27 PHP
详解HTTP Cookie状态管理机制
Jan 14 PHP
php微信公众平台开发(一) 配置接口
Dec 06 PHP
Laravel多域名下字段验证的方法
Apr 04 PHP
PHP实现的操作数组类库定义与用法示例
May 24 PHP
Laravel框架查询构造器 CURD操作示例
Sep 04 PHP
PHP二维数组分页2种实现方法解析
Jul 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 json_encode奇怪问题说明
2011/09/27 PHP
windows下配置apache+php+mysql时出现问题的处理方法
2014/06/20 PHP
php+MySql实现登录系统与输出浏览者信息功能
2016/07/01 PHP
深入document.write()与HTML4.01的非成对标签的详解
2013/05/08 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
2014/06/06 Javascript
get(0).tagName获得作用标签示例代码
2014/10/08 Javascript
JavaScript中获取鼠标位置相关属性总结
2014/10/11 Javascript
浅谈关于JavaScript API设计的一些建议和准则
2015/06/24 Javascript
每天一篇javascript学习小结(属性定义方法)
2015/11/19 Javascript
一个超简单的jQuery回调函数例子(分享)
2016/08/08 Javascript
vue2.0 和 animate.css的结合使用
2017/12/12 Javascript
Vue v2.4中新增的$attrs及$listeners属性使用教程
2018/01/08 Javascript
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
iView框架问题整理小结
2018/10/16 Javascript
Node.js操作系统OS模块用法分析
2019/01/04 Javascript
一个因@click.stop引发的bug的解决
2019/01/08 Javascript
详解JS实现系统登录页的登录和验证
2019/04/29 Javascript
基于JavaScript实现单例模式
2019/10/30 Javascript
pymongo实现控制mongodb中数字字段做加法的方法
2015/03/26 Python
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
python实现屏保计时器的示例代码
2018/08/08 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
Django框架组成结构、基本概念与文件功能分析
2019/07/30 Python
利用Python将多张图片合成视频的实现
2020/11/23 Python
丝芙兰中国官方商城:SEPHORA中国
2018/01/10 全球购物
计算机网络专业个人的自我评价
2013/10/17 职场文书
高中毕业生自我鉴定例文
2013/12/29 职场文书
高二物理教学反思
2014/02/08 职场文书
办公室文员岗位职责范本
2014/06/12 职场文书
个人主要事迹材料
2014/08/26 职场文书
2014年电话客服工作总结
2014/12/09 职场文书
初中开学典礼新闻稿
2015/07/17 职场文书
《风娃娃》教学反思
2016/02/18 职场文书
2016个人廉洁自律承诺书
2016/03/25 职场文书
解决go在函数退出后子协程的退出问题
2021/04/30 Golang