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 is_file 判断给定文件名是否为一个正常的文件
May 10 PHP
解析php中获取系统信息的方法
Jun 25 PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
Apr 24 PHP
PHP遍历目录并返回统计目录大小
Jun 09 PHP
php数组中删除元素之重新索引的方法
Sep 16 PHP
PHP生成RSS文件类实例
Dec 05 PHP
ThinkPHP安装和设置
Jul 27 PHP
基于php实现七牛抓取远程图片
Dec 01 PHP
php自定义函数实现汉字转换utf8编码的方法
Sep 29 PHP
Netbeans 8.2与PHP相关的新特性介绍
Oct 08 PHP
PHP实现图片的等比缩放和Logo水印功能示例
May 04 PHP
PHP让数组中有相同值的组成新的数组实例
Dec 31 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
Ajax+PHP边学边练 之五 图片处理
2009/12/03 PHP
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
2012/02/05 PHP
手把手编写PHP框架 深入了解MVC运行流程
2016/09/19 PHP
PHP设计模式之单例模式原理与实现方法分析
2018/04/25 PHP
传智播客学习之java 反射
2009/11/22 Javascript
将CKfinder整合进CKEditor3.0的新方法
2010/01/10 Javascript
特殊情况下如何获取span里面的值
2014/05/20 Javascript
zeroclipboard 单个复制按钮和多个复制按钮的实现方法
2014/06/14 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
js事件源window.event.srcElement兼容性写法(详解)
2016/11/25 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
bootstrap table单元格新增行并编辑
2017/05/19 Javascript
十个免费的web前端开发工具详细整理
2017/09/18 Javascript
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
Vue实现导出excel表格功能
2018/03/30 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
2019/06/26 Javascript
[04:45]DOTA2-DPC中国联赛正赛 iG vs LBZS 赛后选手采访
2021/03/11 DOTA
使用Python压缩和解压缩zip文件的教程
2015/05/06 Python
Python中threading模块join函数用法实例分析
2015/06/04 Python
在Python的Flask中使用WTForms表单框架的基础教程
2016/06/07 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
Python self用法详解
2020/11/28 Python
python上下文管理的使用场景实例讲解
2021/03/03 Python
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
哈萨克斯坦移动和数字技术在线商店:SatelOnline.kz
2020/09/04 全球购物
大学同学聚会邀请函
2014/01/19 职场文书
个人投资计划书
2014/05/01 职场文书
员工团队活动方案
2014/08/28 职场文书
办公用品管理制度
2015/08/04 职场文书
分享一些Java的常用工具
2021/06/11 Java/Android
使用pandas生成/读取csv文件的方法实例
2021/07/09 Python
CSS使用Flex和Grid布局实现3D骰子
2022/08/05 HTML / CSS