如下例子爲實例,代碼以便運用(必定注意用紅框圈起來的名字和地址,不然會出錯的)望可以幫到親們哦^_^javascript
預覽html
增長java
編輯web
這是提交按鈕 保存和返回ajax
添加的(修改的把name id action改一下就能夠了)json
1、添加post
1.靜態fetch
<div class="form-group">
<label class="col-sm-3 control-label">封面:</label>
<div class="input-group col-sm-4">
<input type="hidden" id="data_photo" name="honor_img" >
<div id="fileList" class="uploader-list" style="float:right"></div>
<div id="imgPicker" style="float:left">選擇圖片</div>
<img id="img_data" height="100px" style="float:left;margin-left: 50px;margin-top: -10px;" src="/static/admin/images/no_img.jpg"/>
</div>
</div>
2.運用JQuery (填入圖片狀態)運用AJAX請求添加this
<script type="text/javascript" src="/static/admin/webupload/webuploader.min.js"></script>
<script type="text/javascript">
var $list = $('#fileList');
//上傳圖片,初始化WebUploader
var uploader = WebUploader.create({
auto: true,// 選完文件後,是否自動上傳。
swf: '/static/admin/js/webupload/Uploader.swf',// swf文件路徑
server: "{:url('Upload/upload')}",// 文件接收服務端。
duplicate :true,// 重複上傳圖片,true爲可重複false爲不可重複
pick: '#imgPicker',// 選擇文件的按鈕。可選。
accept: {
title: 'Images',
extensions: 'gif,jpg,jpeg,bmp,png',
mimeTypes: 'image/jpg,image/jpeg,image/png'
},
'onUploadSuccess': function(file, data, response) {
$("#data_photo").val(data._raw);
$("#img_data").attr('src', '/uploads/images/' + data._raw).show();
}
});
uploader.on( 'fileQueued', function( file ) {
$list.html( '<div id="' + file.id + '" class="item">' +
'<h4 class="info">' + file.name + '</h4>' +
'<p class="state">正在上傳...</p>' +
'</div>' );
});
// 文件上傳成功
uploader.on( 'uploadSuccess', function( file ) {
$( '#'+file.id ).find('p.state').text('上傳成功!');
});
// 文件上傳失敗,顯示上傳出錯。
uploader.on( 'uploadError', function( file ) {
$( '#'+file.id ).find('p.state').text('上傳出錯!');
});
$(function(){
$('#add').ajaxForm({
success: complete, // 這是提交後的方法
dataType: 'json'
});
function complete(data){
if(data.code == 1){
layer.msg(data.msg, {icon: 6,time:1500,shade: 0.1}, function(index){
layer.close(index);
window.location.href="{:url('Honor/index')}";
});
}else{
layer.msg(data.msg, {icon: 5,time:1500,shade: 0.1}, function(index){
layer.close(index);
});
return false;
}
}
});
</script>
3.控制器內
//增長
public function add(){
if(request()->isAjax()){
$param = input('post.');
unset($param['file']);
$article = new HonorModel();
$flag = $article->insertHonor($param);
return json(['code' => $flag['code'], 'data' => $flag['data'], 'msg' => $flag['msg']]);
}
return $this->fetch();
}
4.模型內MODEL 寫入添加信息方法url
protected $name = 'honor';(表格名字)
// 開啓自動寫入時間戳
protected $autoWriteTimestamp = true;
//增長
public function insertHonor($param)
{
try{
$result = $this->save($param);
if(false === $result){
return ['code' => -1, 'data' => '', 'msg' => $this->getError()];
}else{
return ['code' => 1, 'data' => '', 'msg' => '公司榮譽照片添加成功'];
}
}catch( PDOException $e){
return ['code' => -2, 'data' => '', 'msg' => $e->getMessage()];
}
}
2、修改圖片(修改時上一次的圖片依然存在修改頁面,以便於修改時知道修改的哪張圖片)
1.靜態
<input type="hidden" name="id" value="{$result.id}">
<div class="form-group">
<label class="col-sm-3 control-label">封面:</label>
<div class="input-group col-sm-4">
<input type="hidden" id="data_photo" name="honor_img" value="{$result.honor_img}">
<div id="fileList" class="uploader-list" style="float:right"></div>
<div id="imgPicker" style="float:left">選擇圖片</div>
<img id="img_data" height="100px" style="float:left;margin-left: 50px;margin-top: -10px;" onerror="this.src='/static/admin/images/no_img.jpg'" src="/uploads/images/{$result.honor_img}"/>
</div>
</div>
2.JQuery(運用AJAX請求)
<script type="text/javascript" src="/static/admin/webupload/webuploader.min.js"></script>
<script type="text/javascript">
var $list = $('#fileList');
//上傳圖片,初始化WebUploader
var uploader = WebUploader.create({
auto: true,// 選完文件後,是否自動上傳。
swf: '/static/admin/js/webupload/Uploader.swf',// swf文件路徑
server: "{:url('Upload/upload')}",// 文件接收服務端。
duplicate :true,// 重複上傳圖片,true爲可重複false爲不可重複
pick: '#imgPicker',// 選擇文件的按鈕。可選。
accept: {
title: 'Images',
extensions: 'gif,jpg,jpeg,bmp,png',
mimeTypes: 'image/jpg,image/jpeg,image/png'
},
'onUploadSuccess': function(file, data, response) {
$("#data_photo").val(data._raw);
$("#img_data").attr('src', '/uploads/images/' + data._raw).show();
}
});
uploader.on( 'fileQueued', function( file ) {
$list.html( '<div id="' + file.id + '" class="item">' +
'<h4 class="info">' + file.name + '</h4>' +
'<p class="state">正在上傳...</p>' +
'</div>' );
});
// 文件上傳成功
uploader.on( 'uploadSuccess', function( file ) {
$( '#'+file.id ).find('p.state').text('上傳成功!');
});
// 文件上傳失敗,顯示上傳出錯。
uploader.on( 'uploadError', function( file ) {
$( '#'+file.id ).find('p.state').text('上傳出錯!');
});
$(function(){
$('#edit').ajaxForm({
success: complete, // 這是提交後的方法
dataType: 'json'
});
function complete(data){
if(data.code == 1){
layer.msg(data.msg, {icon: 6,time:1500,shade: 0.1}, function(index){
layer.close(index);
window.location.href="{:url('Honor/index')}";
});
}else{
layer.msg(data.msg, {icon: 5,time:1500,shade: 0.1}, function(index){
layer.close(index);
});
return false;
}
}
});
</script>
3.控制器內
//修改
public function edit($id){
$result = Db::table('think_honor')->where('id', $id)->find();
$this->assign('result', $result);
$article = new HonorModel();
if(request()->isAjax()){
$param = input('post.');
unset($param['file']);
$flag = $article->editHonor($param);
return json(['code' => $flag['code'], 'data' => $flag['data'], 'msg' => $flag['msg']]);
}
return $this->fetch();
}
4.模板內MODEL
protected $name = 'honor';
// 開啓自動寫入時間戳
protected $autoWriteTimestamp = true;
//編輯public function editHonor($param){ try{ $result = $this->save($param, ['id' => $param['id']]); if(false === $result){ return ['code' => 0, 'data' => '', 'msg' => $this->getError()]; }else{ return ['code' => 1, 'data' => '', 'msg' => '公司榮譽照片編輯成功']; } }catch( PDOException $e){ return ['code' => 0, 'data' => '', 'msg' => $e->getMessage()]; }}