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>
```