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代码

 终于完成

posted @ 2024-11-27 15:46  zhang_you_wu  阅读(31)  评论(0编辑  收藏  举报