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数据库(4)
Oct 09 PHP
PHP读写文件的方法(生成HTML)
Nov 27 PHP
《PHP编程最快明白》第三讲:php数组
Nov 01 PHP
php数组中删除元素的实现代码
Jun 22 PHP
php教程 插件机制在PHP中实现方案
Nov 02 PHP
邮箱正则表达式实现代码(针对php)
Jun 21 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
Jul 28 PHP
简单实用的PHP防注入类实例
Dec 05 PHP
php实现按天数、星期、月份查询的搜索框
May 02 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
Dec 21 PHP
Yii框架数据库查询、增加、删除操作示例
Oct 14 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
Oct 16 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
JavaScript Archive Network 集合
2007/05/12 Javascript
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
js获取单元格自定义属性值的代码(IE/Firefox)
2010/04/05 Javascript
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
快速解决FusionCharts联动的中文乱码问题
2013/12/04 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
jquery文本框中的事件应用以输入邮箱为例
2014/05/06 Javascript
详解JavaScript中的Unescape()和String() 函数
2015/11/09 Javascript
javascript使用Promise对象实现异步编程
2016/03/01 Javascript
判断是否存在子节点的实现代码
2016/05/18 Javascript
小程序接入腾讯位置服务的详细流程
2020/03/03 Javascript
详解datagrid使用方法(重要)
2020/11/06 Javascript
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
[00:10]DOTA2 TI9勇士令状明日上线
2019/05/07 DOTA
[03:08]迎霜节狂欢!2018年迎霜节珍藏Ⅰ一览
2018/12/25 DOTA
Python采用Django开发自己的博客系统
2020/09/29 Python
Python用Pillow(PIL)进行简单的图像操作方法
2017/07/07 Python
Python同步遍历多个列表的示例
2019/02/19 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
2020/01/10 Python
pycharm激活码快速激活及使用步骤
2020/03/12 Python
django-csrf使用和禁用方式
2020/03/13 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
python爬虫数据保存到mongoDB的实例方法
2020/07/28 Python
HTML5实现WebSocket协议原理浅析
2014/07/07 HTML / CSS
瑞士最大的图书贸易公司:Orell Füssli
2019/12/28 全球购物
UNIX命令速查表
2012/03/10 面试题
科研课题实施方案
2014/03/18 职场文书
保护环境倡议书
2014/04/14 职场文书
《金色的脚印》教后反思
2014/04/23 职场文书
物理学专业求职信
2014/07/04 职场文书
初三毕业感言
2015/07/31 职场文书
启动Tomcat时出现大量乱码的解决方法
2021/06/21 Java/Android
Mysql中where与on的区别及何时使用详析
2021/08/04 MySQL
使用python创建股票的时间序列可视化分析
2022/03/03 Python
vue项目如何打包之项目打包优化(让打包的js文件变小)
2022/04/30 Vue.js
Windows Server 2022 超融合部署(图文教程)
2022/06/25 Servers