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中使用Oracle数据库(5)
Oct 09 PHP
PHP生成带有雪花背景的验证码
Sep 28 PHP
Smarty Foreach 使用说明
Mar 23 PHP
phpmail类发送邮件函数代码
Feb 20 PHP
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
Jan 31 PHP
php实现快速排序的三种方法分享
Mar 12 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
Aug 19 PHP
php根据指定位置和长度获得子字符串的方法
Mar 17 PHP
CodeIgniter删除和设置Cookie的方法
Apr 07 PHP
使用Huagepage和PGO来提升PHP7的执行性能
Nov 30 PHP
php基于 swoole 实现的异步处理任务功能示例
Aug 13 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
Sep 19 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侧拉菜单 漂亮,可以向右或者向左展开,支持FF,IE
2009/10/15 PHP
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
PHP实现上一篇下一篇的方法实例总结
2016/09/22 PHP
PHP分页显示的方法分析【附PHP通用分页类】
2018/05/10 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
thinkPHP5使用Rabc实现权限管理
2019/08/28 PHP
JQuery将文本转化成JSON对象需要注意的问题
2011/05/09 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
js中的this关键字详解
2013/09/25 Javascript
在javascript中如何得到中英文混合字符串的长度
2014/01/17 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
JS实现星星评分功能实例代码(两种方法)
2016/06/09 Javascript
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
原生js实现轮播图的示例代码
2017/02/20 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
2017/06/01 Javascript
详解nodeJS之二进制buffer对象
2017/06/03 NodeJs
NodeJs实现定时任务的示例代码
2017/12/05 NodeJs
webpack热模块替换(HMR)/热更新的方法
2018/04/05 Javascript
Node.js命令行/批处理中如何更改Linux用户密码浅析
2018/07/22 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
2018/09/03 Javascript
express框架下使用session的方法
2019/07/31 Javascript
纯Python开发的nosql数据库CodernityDB介绍和使用实例
2014/10/23 Python
极简的Python入门指引
2015/04/01 Python
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
Flask框架通过Flask_login实现用户登录功能示例
2018/07/17 Python
Python实用工具FuckIt.py介绍
2019/07/02 Python
pycharm修改文件的默认打开方式的步骤
2019/07/29 Python
根据tensor的名字获取变量的值方式
2020/01/04 Python
python实现飞机大战游戏(pygame版)
2020/10/26 Python
Python基于Twilio及腾讯云实现国际国内短信接口
2020/06/18 Python
什么是WEB控件?使用WEB控件有哪些优势?
2012/01/21 面试题
证婚人搞笑证婚词
2014/01/10 职场文书
大四学生思想汇报
2014/01/13 职场文书
2015年城市管理工作总结
2015/05/23 职场文书