php+ajax上传图片

匿名 (未验证) 提交于 2019-12-02 22:11:45

js:

    var imgarr = [];     $('.file').on('change',function(e){        var inp = $(this);        var up = $(e.currentTarget).parents('li');         $("#mainForm").ajaxSubmit({         url : "<{:U('Release/ajaxUpload')}>", // 请求的url           type : "post", // 请求方式           dataType : "json", // 响应的数据类型           async :true, // 异步           success: function (data1) {              // alert(data1);             // $('.uploadImg').empty();            var ele = "\             <li class='img'>\                 <img src='"+data1+"'>\                 <i class='iconfont icon-delete2' onclick='remove(this)'></i>\             </li>";             //$('.imgBox').before(ele);             up.before(ele)             $('#mainForm').find('input[name=image]').val(data1);             imgarr.push(data1);         },           error : function(){               alert("数据加载失败!");          }            });            });

<ul class="imgBox" id="1">                     <li class="up">                         <span><i class="iconfont icon-plus-bold"></i></span>                         <input  type="file" name="img" class="file">                     </li>                 </ul>

php代码:

    /**      * 上传图片      */     public function ajaxUpload()     {         $pic = $_FILES['img'];         $path_pic = './Public/static/images';         if (!empty($pic['name'])) {             $pic_res = uploadFile($pic, $path_pic);              if ($pic_res['status'] == 1) {                  $this->ajaxReturn(trim($pic_res['dest'], '.'));             } else {                 $this->ajaxReturn(0);             }         } else {             $this->ajaxReturn(0);         }     }

uploadFile函数:

//文件上传 function uploadFile($fileInfo, $path = './public/static/images/', $flag = true, $allowExt = array('jpeg', 'jpg', 'png', 'gif', 'mp3', 'wav', 'wma', ''), $maxSize = 524288000) {     //判断错误号     if ($fileInfo['error'] == 0) {         //检测上传文件的大小           if ($fileInfo['size'] > $maxSize) {             $res['mes'] = $fileInfo['name'] . '上传文件过大';         }         $ext = strtolower(pathinfo($fileInfo['name'], PATHINFO_EXTENSION));         //检测上传文件的文件类型           if (!in_array($ext, $allowExt)) {             $res['mes'] = $fileInfo['name'] . '非法文件类型';         }         //检测是否是真实的图片类型           if ($flag) {             if (!getimagesize($fileInfo['tmp_name'])) {                 $res['mes'] = $fileInfo['name'] . '不是真实图片类型';             }         }         // 检测文件是否是通过HTTP POST上传上来的           if (!is_uploaded_file($fileInfo['tmp_name'])) {             $res['mes'] = $fileInfo['name'] . '文件不是通过HTTP POST方式上传上来的';         }         if ($res) return $res; //如果要不显示错误信息的话,用if( @$res ) return $res;          //$path='./uploads';           //如果没有这个文件夹,那么就创建一           if (!file_exists($path)) {             mkdir($path, 0777, true);             chmod($path, 0777);         }          //新文件名唯一           $uniName = md5(uniqid(microtime(true), true));         $destination = $path . '/' . $uniName . '.' . $ext;          //@符号是为了不让客户看到错误信,也可以删除          if (!@move_uploaded_file($fileInfo['tmp_name'], $destination)) {             $res['mes'] = $fileInfo['name'] . '文件移动失败';         }         $res['mes'] = $fileInfo['name'] . '上传成功';         $res['status'] = 1;         $res['dest'] = $destination;         return $res;     } else {         //匹配错误信息           //注意!错误信息没有5           switch ($fileInfo['error']) {             case 1:                 $res['mes'] = '上传文件超过了PHP配置文件中upload_max_filesize选项的值';                 break;             case 2:                 $res['mes'] = '超过了HTML表单MAX_FILE_SIZE限制的大小';                 break;             case 3:                 $res['mes'] = '文件部分被上传';                 break;             case 4:                 $res['mes'] = '没有选择上传文件';                 break;             case 6:                 $res['mes'] = '没有找到临时目录';                 break;             case 7:                 $res['mes'] = '文件写入失败';                 break;             case 8:                 $res['mes'] = '上传的文件被PHP扩展程序中断';                 break;          }         $res['status'] = -1;         return $res;     }
js需要引入jquery-form.js
文章来源: php+ajax上传图片
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!