HTML
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
<title>图片上传 - 光年(Light Year Admin)后台管理系统模板</title>
<link rel="icon" href="favicon.ico" type="image/ico">
<meta name="keywords" content="LightYear,光年,后台模板,后台管理系统,光年HTML模板">
<meta name="description" content="LightYear是一个基于Bootstrap v3.3.7的后台管理系统的HTML模板。">
<meta name="author" content="yinqi">
<link href="http://lyear.itshubao.com/iframe/css/bootstrap.min.css" rel="stylesheet">
<link href="http://example.itshubao.com/demo/css/materialdesignicons.min.css" rel="stylesheet">
<link href="http://lyear.itshubao.com/iframe/css/animate.css" rel="stylesheet">
<link href="http://lyear.itshubao.com/iframe/css/style.min.css" rel="stylesheet">
</head>
<body>
<div class="container-fluid p-t-15">
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-header"><h4>图片上传</h4></div>
<div class="card-body">
<p>这里采用FormData实现上传效果,示例为单张图片上传。</p>
<form action="#!" method="post" name="edit-form" class="edit-form">
<div class="form-group file-group">
<label for="web_site_logo">LOGO图片</label>
<div class="input-group">
<input type="text" class="form-control file-value" name="web_site_logo" value="" placeholder="LOGO图片地址" />
<input type="file" accaccept=".png,.jpg,.jpeg,.bmp,.gif" class="hidden" />
<div class="input-group-btn">
<button class="btn btn-default file-browser" type="button">上传图片</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="http://lyear.itshubao.com/iframe/js/jquery.min.js"></script>
<script type="text/javascript" src="http://lyear.itshubao.com/iframe/js/bootstrap.min.js"></script>
<script src="http://lyear.itshubao.com/iframe/js/bootstrap-notify.min.js"></script>
<script type="text/javascript" src="http://lyear.itshubao.com/iframe/js/lightyear.js"></script>
<script type="text/javascript" src="http://lyear.itshubao.com/iframe/js/main.min.js"></script>
</body>
</html>
JavaScript
$(document).ready(function() {
$(document).on('click', '.file-browser', function() {
var $browser = $(this);
var file = $browser.closest('.file-group').find('[type="file"]');
file.on( 'click', function(e) {
e.stopPropagation();
});
file.trigger('click');
});
$(document).on('change', '.file-group [type="file"]', function() {
var $this = $(this);
var $input = $(this)[0];
var $len = $input.files.length;
var formFile = new FormData();
if ($len == 0) {
return false;
} else {
var fileAccaccept = $this.attr('accaccept');
var fileType = $input.files[0].type;
var type = (fileType.substr(fileType.lastIndexOf("/") + 1)).toLowerCase();
if (!type || fileAccaccept.indexOf(type) == -1) {
lightyear.notify('您上传图片的类型不符合(.jpg|.jpeg|.gif|.png|.bmp)', 'danger', 1000);
return false;
}
formFile.append("file", $input.files[0]);
}
var data = formFile;
lightyear.loading('show');
$.ajax({
url: 'http://example.itshubao.com/index/test/upload',
data: data,
type: "POST",
dataType: "json",
//上传文件无需缓存
cache: false,
//用于对data参数进行序列化处理 这里必须false
processData: false,
//必须
contentType: false,
success: function (res) {
lightyear.loading('hide');
if (res.status === 1) {
$this.closest('.file-group').find('.file-value').val(res.url);
} else {
lightyear.notify(res.info, 'danger', 3000);
}
},
});
});
});