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"></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>
```