🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
php ``` <?php // 版权所有:网程科技(http://www.phpwc.com/),开发者QQ:276884091,盗版必究。 // 文件上传 header("Content-type:text/html;charset = utf-8"); // 上传远程图片 $file_get = $_FILES['file'];//得到传输的数据(img_xiao为表单值) $file = array( 'site' => '../phpwcimg/', // 文件目录(相对于网站根目录) 'size' => '5000000', // 允许的文件最大尺寸(默认5M) 'count' => '6', // 允许的最大数量(默认6) ); $fs_qz = date("YmdHis",time()).'_'.$_G['uid'].'_'.$file_get['name']; //要存储的文件名 $fs_type = array('jpg','jpeg','gif','png'); //允许上传的类型 $fs_size = $file['size']; // 允许的文件最大尺寸 $fs_count = $file['count'];// 允许的最大数量 // 脚本 $file_name = $file_get['name']; //文件名 // 获取文件后缀 $file_explode = explode('.', $file_name); $file_counttype = $file_explode[count($file_explode)-1]; //文件名后缀 // 判断类型 if(in_array($file_counttype,$fs_type)){ //判断上传的图片类型 是否在图片类型数组中 $type_m = '1'; //符合 }else{ $type_m = '2'; //不符合 } // 创建目录 $time = date("Y"); //按年存储 $file_site = "{$file['site']}/{$time}/"; // 文件夹位置(相对于FTP) if (!is_dir($file_site)){ mkdir(iconv("UTF-8", "GBK", $file_site),0777,true); //递归创建目录 } // 开始上传 $fs_lswn = $file_get['tmp_name']; //临时文件地址 $fs_site = "{$file['site']}/{$time}/{$fs_qz}"; // 要上传的文件地址 if(!empty($fs_lswn)){ //检查临时文件 move_uploaded_file($fs_lswn,$fs_site); //上传图像 } /************** 图片压缩类开始 **************/ /** * 生成图片 * @param string $im 源图片路径 * @param string $dest 目标图片路径 * @param int $maxwidth 生成图片宽 * @param int $maxheight 生成图片高 */ function resizeImage($im, $dest, $maxwidth, $maxheight) { $img = getimagesize($im); switch ($img[2]) { case 1: $im = @imagecreatefromgif($im); break; case 2: $im = @imagecreatefromjpeg($im); break; case 3: $im = @imagecreatefrompng($im); break; } $pic_width = imagesx($im); $pic_height = imagesy($im); $resizewidth_tag = false; $resizeheight_tag = false; if (($maxwidth && $pic_width > $maxwidth) || ($maxheight && $pic_height > $maxheight)) { if ($maxwidth && $pic_width > $maxwidth) { $widthratio = $maxwidth / $pic_width; $resizewidth_tag = true; } if ($maxheight && $pic_height > $maxheight) { $heightratio = $maxheight / $pic_height; $resizeheight_tag = true; } if ($resizewidth_tag && $resizeheight_tag) { if ($widthratio < $heightratio) $ratio = $widthratio; else $ratio = $heightratio; } if ($resizewidth_tag && !$resizeheight_tag) $ratio = $widthratio; if ($resizeheight_tag && !$resizewidth_tag) $ratio = $heightratio; $newwidth = $pic_width * $ratio; $newheight = $pic_height * $ratio; if (function_exists("imagecopyresampled")) { $newim = imagecreatetruecolor($newwidth, $newheight); imagecopyresampled($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $pic_width, $pic_height); } else { $newim = imagecreate($newwidth, $newheight); imagecopyresized($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $pic_width, $pic_height); } imagejpeg($newim, $dest); imagedestroy($newim); } else { imagejpeg($im, $dest); } } /** * 图片压缩处理 * @param string $sFile 源图片路径 * @param int $iWidth 自定义图片宽度 * @param int $iHeight 自定义图片高度 * @return string 压缩后的图片路径 */ function getThumb($sFile,$iWidth,$iHeight){ //图片公共路径 $public_path = ''; //判断该图片是否存在 if(!file_exists($public_path.$sFile)) return $sFile; //判断图片格式(图片文件后缀) $extend = explode("." , $sFile); $attach_fileext = strtolower($extend[count($extend) - 1]); if (!in_array($attach_fileext, array('jpg','png','jpeg'))){ return ''; } //压缩图片文件名称 $sFileNameS = str_replace(".".$attach_fileext, "x.".$attach_fileext, $sFile); //判断是否已压缩图片,若是则返回压缩图片路径 if(file_exists($public_path.$sFileNameS)){ return $sFileNameS; } //生成压缩图片,并存储到原图同路径下 resizeImage($public_path.$sFile, $public_path.$sFileNameS, $iWidth, $iHeight); if(!file_exists($public_path.$sFileNameS)){ return $sFile; } return $sFileNameS; } /************** 图片压缩类结束 **************/ // 获取原图大小,判断是否需要压缩 $img_info = getimagesize($fs_site); if ($img_info['0'] > 950 || $img_info['1'] > 1200){ $img_url = getThumb($fs_site,950,1200); unlink($fs_site); //删除没有logo的二维码 }else{ $img_url = $fs_site; } // 输出到html if (file_exists($img_url)){ //检查是否上传成功 echo (json_encode(array('code'=>0,'msg'=>$img_url))); } ?> ``` html ``` <div class="form-group row"> <label class="col-md-2 col-form-label">身份证人像面</label> <div class="col-md-6"> <button type="button" class="layui-btn" id="imga"><i class="layui-icon">&#xe67c;</i>{if $biao['imgaurl']}已上传/修改{else}点击上传{/if}</button> </p></p></p> <input style="display:none" type="text" name="imgaurl" value="{$biao['imgaurl']}" > <div class="text-muted mb-0"> <img class="layui-upload-img" id="imga_demo" width="200px" height="200px"> <img class="layui-upload-img" src="../{$biao['imgaurl']}" width="200px" height="200px"> </div> </div> </div> ``` js ``` <script> ;!function(){ //无需再执行layui.use()方法加载模块,直接使用即可 var form = layui.form ,layer = layui.layer; }(); layui.use('element', function(){ var element = layui.element; //一些事件监听 element.on('tab(demo)', function(data){ console.log(data); }); }); </script> <script> // 图片上传a layui.use('upload', function(){ var $ = layui.jquery ,upload = layui.upload; // 普通图片上传 var uploadInst = upload.render({ elem: '#imga' ,url: '/phpurl/img_file.php' //改成您自己的上传接口 //,url: './source/plugin/phpwc_weike/inc/api/post_file.php' //改成您自己的上传接口 //预读本地文件示例,不支持ie8 ,before: function(obj){ obj.preview(function(index, file, result){ $('#imga_demo').attr('src', result); //图片链接(base64) }); } // 上传后回调 ,done: function(res){ layer.closeAll('loading'); layer.msg("上传成功!"); $('input[name="imgaurl"]').val(res.msg); } }); }); </script> ```