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
PHP面向对象编程快速入门
Oct 09 PHP
一个连接两个不同MYSQL数据库的PHP程序
Oct 09 PHP
PHP 生成的XML以FLASH获取为乱码终极解决
Aug 07 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
Jun 03 PHP
php include和require的区别深入解析
Jun 17 PHP
如何使用php实现评委评分器
Jul 31 PHP
php如何获取文件的扩展名
Oct 28 PHP
PHP仿微信多图片预览上传实例代码
Sep 13 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
Nov 01 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
Oct 17 PHP
PHP7 参数处理机制修改
Mar 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
将RTF格式的文件转成HTML并在网页中显示的代码
2006/10/09 PHP
PHP 强制下载文件代码
2010/10/24 PHP
使用php判断浏览器的类型和语言的函数代码
2013/02/28 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
实例讲解php将字符串输出到HTML
2019/01/27 PHP
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
javascript 主动派发事件总结
2011/08/09 Javascript
js实现汉字排序的方法
2015/07/23 Javascript
js中unicode转码方法详解
2015/10/09 Javascript
Web Uploader文件上传插件使用详解
2016/05/10 Javascript
改变checkbox默认选中状态及取值的实现代码
2016/05/26 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
2017/01/04 Javascript
vue指令以及dom操作详解
2017/03/04 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
Vue使用json-server进行后端数据模拟功能
2018/04/17 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
2019/11/06 Javascript
vue实现户籍管理系统
2020/05/29 Javascript
在Python中使用itertools模块中的组合函数的教程
2015/04/13 Python
Python实现遍历目录的方法【测试可用】
2017/03/22 Python
深入理解Django的中间件middleware
2018/03/14 Python
python使用pymongo操作mongo的完整步骤
2019/04/13 Python
Python高并发和多线程有什么关系
2020/11/14 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
2021/02/01 Python
Fossil美国官网:Fossil手表、手袋、珠宝及配件
2017/02/01 全球购物
意大利婴儿产品网上商店:Mukako
2018/10/14 全球购物
有机婴儿毛毯和衣服:Monica + Andy
2020/03/01 全球购物
DOUGLAS波兰:在线销售香水和化妆品
2020/07/05 全球购物
行政专员的岗位职责
2014/03/10 职场文书
向领导表决心的话
2014/03/11 职场文书
春节联欢晚会主持词
2014/03/24 职场文书
小学教师师德承诺书
2014/05/23 职场文书
授权委托书(公民个人适用)
2014/09/19 职场文书
优秀教研组申报材料
2014/12/26 职场文书
呼兰河传读书笔记
2015/06/30 职场文书
英镑符号 £
2022/02/17 杂记