注:非本人原创!这里作整理,只为方便以后查看!
<script src="jquery-1.8.3.min.js"></script>
<script>
/**
* 图片上传处理
*/
$(function(){
$(".fileNewClass").off().on("change",function () {
var url="/basic/upload/seniorImg";
var formData = new FormData();
var inputName = $(".fileNewClass").val();
var name=$(this).attr("upName"); //真实上传的文件名
var fileName=$(this).attr("name"); //上传的按钮名称
formData.append(name,$(this)[0].files[0]);
formData.append("inputName",inputName);
var tmpThis=$(this);;
$.ajax({
url : url,
type : 'POST',
data : formData,
processData : false,
contentType : false,
dataType:'json',
headers:{'X-CSRF-TOKEN':$('meta[name="_token"]').attr('content')},
success : function(info) {
//var hiddenInput='<input type="hidden" class="'+name+'" value="'+info.path+'">';
var hiddenInput='<input type="hidden" name="picArr[paramValue][]" value="'+info.path+'"><input type="hidden" name="picArr[primaryType][]" value="0"><input type="hidden" name="picArr[paramState][]" value="1">';
var imgstr='<img src='+info.allPath+' width="100" height="100" style="margin-right:10px">';
var delstr='<p οnclick="img_del_one(this)" style="color:#0088cc;cursor: pointer;">删除</p>';
var allHtml='<div class="img_dev_one pull-left">'+hiddenInput+imgstr+delstr+'</div>';
$(tmpThis).parent().prev(".more_img").append(allHtml);
}
});
})
})
/**
* 删除单张图片
*/
function img_del_one(self) {
$(self).parent().remove();
}
</script>
<div class="more_img">
<div class="pull-left" style="padding-left: 15px;">
<?php if(!empty($picArr) && count($picArr)>0): ?>
<?php foreach ($picArr as $key=>$val):?>
<div class="img_dev_one pull-left">
<input type="hidden" name="picArr[paramId][]" value="<?=$val['paramId']?>">
<input type="hidden" name="picArr[paramName][]" value="<?=$val['paramName']?>">
<input type="hidden" name="picArr[paramValue][]" value="<?=$val['paramValue']?>">
<input type="hidden" name="picArr[primaryType][]" value="<?=$val['primaryType']?>">
<input type="hidden" name="picArr[paramState][]" value="<?=$val['paramState']?>">
<img src="<?php echo $picHost.$val['paramValue'].".jpg"; ?>" width="100" height="100" style="margin-right:10px">
<p οnclick="img_del_one(this)" style="color:#0088cc;cursor: pointer;">删除</p>
</div>
<?php endforeach ?>
<?php endif ?>
</div>
</div>
<div class="pull-left">
<input type="file" name="pc_head_file" upName="pc_head" class="file upload fileNewClass" value="添加头图">
</div>
<?php
/**
* 高级上传
*/
function seniorImg(){
if (empty($_FILES)) {
$msg = "上传文件为空!";
die("$msg");
}
$key=array_keys($_FILES)[0];
$path = CommonUploadFile::uploadImageFile($_FILES[$key],$msg);
if(!$path){
die($msg);
}
$allPath = config("hostConfig.imageHost").config("hostConfig.imageUpload.group")."/".$path;
$data['allPath']=$allPath;
$data['path']=config("hostConfig.imageUpload.group")."/".$path;
$data['name']=($_FILES[$key]['name']);
echo $dataJson=json_encode($data);
}
/**
* 图片上传到本机
* @param string $dirs
* @return string
*/
public static function uploadImageFile($imgResource, &$msg, $dirs = "uploads_pc")
{
$basePath = config("baseConfig.basePath");
//定义图片路径
$ds = DIRECTORY_SEPARATOR;
$target_real_path = $basePath . $ds . $dirs . $ds;//存储上传的图片绝对路径
$return_url = $ds . $dirs . $ds; //返回url
$ymd = date("Ymd");
$target_real_path = $target_real_path . $ymd . $ds;
$return_url = $return_url . $ymd . $ds;
if (!file_exists($target_real_path)) {
mkdir($target_real_path, 0777, true);
}
//接收客户端上传的图片信息
$img_options = array('jpg', 'jpeg', 'gif', 'png', 'webp');
$file_name = uniqid('epai') . time();//图片名称
$img_ext = !empty(@pathinfo($imgResource['name'])['extension']) ? strtolower(@pathinfo($imgResource['name'])['extension']) : '';
$upload_file_name = $target_real_path . $file_name . '.jpg';//上传的图片路径
if (empty($imgResource['tmp_name'])) {
$msg = "请选择要上传的图片";
return false;
}
if (!in_array($img_ext, $img_options)) {
$msg = "请选择要上传jpg|jpeg|gif|png|webp等格式图片";
return false;
}
if ($imgResource['size'] > 4 * 1024 * 1024) {
$msg = "请选择上传4M以下的图片";
return false;
}
if ($imgResource['error'] != 0) {
$msg = "客户的图片上传错误";
return false;
}
if (!move_uploaded_file($imgResource['tmp_name'], $upload_file_name)) {
$msg = "图片上传失败";
return false;
}
$msg = '图片上传成功';
$file = $upload_file_name;
$urlPath = self::uploadImageFileToRemote($file, $msg);
return $urlPath['path'];
}
?>
原作者:张艳冲
原文地址:http://blog.163.com/zhangyanchongabc@126/blog/static/16895673720178304541713