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翻页类
Jun 01 PHP
PHP 页面跳转到另一个页面的多种方法方法总结
Jul 07 PHP
又一个php 分页类实现代码
Dec 03 PHP
用PHP实现的四则运算表达式计算实现代码
Aug 02 PHP
PHP5中Cookie与 Session使用详解
Apr 30 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
Aug 07 PHP
ThinkPHP之foreach标签使用概述
Jun 30 PHP
PHP-Java-Bridge使用笔记
Sep 22 PHP
php实现XML和数组的相互转化功能示例
Feb 08 PHP
php 生成加密公钥加密私钥实例详解
Jun 16 PHP
PHP addcslashes()函数讲解
Feb 03 PHP
php把文件设置为插件的技巧方法
Feb 03 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异步调用socket实现代码
2012/01/12 PHP
php检测useragent版本示例
2014/03/24 PHP
php实现水仙花数的4个示例分享
2014/04/08 PHP
php实现文件下载实例分享
2014/06/02 PHP
PHP使用xmllint命令处理xml与html的方法
2014/12/15 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
php反射学习之依赖注入示例
2019/06/14 PHP
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
js简单实现让文本框内容逐个字的显示出来
2013/10/22 Javascript
分享一款基于jQuery的视频播放插件
2014/10/09 Javascript
JavaScript运行机制之事件循环(Event Loop)详解
2014/10/10 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
2015/09/27 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
js中遍历Map对象的方法
2016/07/27 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
解决Vue.js由于延时显示了{{message}}引用界面的问题
2018/08/25 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
Vue 自定义指令功能完整实例
2019/09/17 Javascript
ant design 日期格式化的实现
2020/10/27 Javascript
Vuex实现简单购物车
2021/01/10 Vue.js
[46:55]完美世界DOTA2联赛决赛 FTD vs Phoenix 第三场 11.08
2020/11/11 DOTA
python+OpenCV实现车牌号码识别
2019/11/08 Python
Python实现企业微信机器人每天定时发消息实例
2020/02/25 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
2020/03/13 Python
python实现人脸签到系统
2020/04/13 Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
2020/12/04 Python
凯特方迪化妆品官网:Kat Von D Beauty
2016/11/15 全球购物
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
苹果台湾官网:Apple台湾
2019/01/05 全球购物
豪华床上用品、床单和浴室必需品:Peacock Alley
2019/09/04 全球购物
继电保护工岗位职责
2014/01/05 职场文书
电影雨中的树观后感
2015/06/15 职场文书
mysql 直接拷贝data 目录下文件还原数据的实现
2021/07/25 MySQL
css 边框添加四个角的实现代码
2021/10/16 HTML / CSS