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; } //...... }
上图是打印出来的$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; }
大自然,飘然的风,QQ群: python技术交流群:453879716,人工智能深度学习群:251088643
golang技术交流群:316397059,vuejs技术交流群:458915921 囤币一族:621258209,有兴趣的可以加入
微信公众号: 心禅道(xinchandao)投资论道
golang技术交流群:316397059,vuejs技术交流群:458915921 囤币一族:621258209,有兴趣的可以加入
微信公众号: 心禅道(xinchandao)投资论道
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2014-06-15 PHP empty、isset、isnull的区别
2014-06-15 php抛出异常