fastadmin更改上传附件数据库为附件ID
1.后台返回值加入ID
application/admin/controller/Ajax.php文件中upload()方法,2处返回值加上附件ID
这样上传文件后,返回值便会多出file_id字段
2.比如添加商品页面 上传商品图,得到file_id;
<div class="form-group"> <label class="control-label col-xs-12 col-sm-2">{:__('缩放图')}:</label> <div class="col-xs-12 col-sm-8"> <div class="input-group"> <input id="c-image" class="form-control" size="50" name="row[image]" type="text" value="{$row.image|htmlentities}"> <input type="hidden" id="file-id" name="row[file_id]" value=""> <div class="input-group-addon no-border no-padding"> <span><button type="button" id="faupload-image" class="btn btn-danger faupload" data-input-id="c-image" data-file-id="file-id" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-image"><i class="fa fa-upload"></i> {:__('Upload')}</button></span> <span><button type="button" id="fachoose-image" class="btn btn-primary fachoose" data-input-id="c-image" data-file-id="file-id" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span> </div> <span class="msg-box n-right" for="c-image"></span> </div> <ul class="row list-inline faupload-preview" id="p-image"></ul> </div> </div>
主要多了这3处代码
修改/public/assets/js/require-upload.js文件中onUploadSuccess回调方法加入代码
var file_id = $(button).data("file-id") ? $(button).data("file-id") : "";
if(file_id){
var inputfileid = $("#" + file_id);
var idsArr = [];
if ($(button).data("multiple") && $.trim(inputfileid.val()) !== "") {
idsArr.push(inputfileid.val());
}
var ids = data.file_id;
idsArr.push(ids);
inputfileid.val(idsArr.join(","));
}
这样上传时,上传附件后,file_id就会进入input框以供后续添加商品存储;
3.选择文件也需要得到file_id
修改/public/assets/js/backend/general/attachment.js文件中更“选择”按钮点击时间回调方法修改代码
Fast.api.close({url: row.url, multiple: multiple,file_id:row.id});
主要是加入file_id
修改/public/assets/js/require-form.js文件中faselect方法加入代码
var file_id_input = $(button).data("file-id") ? $(button).data("file-id") : "";
var idsArr = [];
var idsObj = $("#" + file_id_input);
var value1 = $.trim(idsObj.val());
if (value1 !== "") {
idsArr.push(idsObj.val());
}
var file_id=data.file_id;
idsArr.push(file_id);
idsObj.val(idsArr);
var file_id = $(button).data("file-id") ? $(button).data("file-id") : ""; if(file_id){ var inputfileid = $("#" + file_id); inputfileid.val( data.file_id); }
至此,大功告成;单图上传和选择input框均可拿到file_id
4.处理多图
修改/public/assets/js/backend/general/attachment.js文件中select方法插入4处代码
修改/public/assets/js/backend/general/attachment.js文件中上方选择按钮方法插入修改代码,主要多传入一个参数
// 选中多个
$(document).on("click", ".btn-choose-multi", function () {
Fast.api.close({url: urlArr.join(","), multiple: multiple,file_id: idsArr.join(",")});
});
5.移除时间
修改模板/public/assets/js/require-upload.js文件中config下面的previewtpl参数插入ID变量
修改/public/assets/js/require-upload.js文件中调用previewtpl模板参数插入ID变量
修改/public/assets/js/require-upload.js文件中移除按钮点击事件中插入重新获取ID代码
终于完成