如果我想让用户删除 上传的图片,我应该返回什么样的json。红色垃圾桶按钮不会发送任何请求,只是从视图中删除图像,而不是从服务器删除。 我看一下这个manual
我现在回复每次上传:
[a,b,c].fnName('doSomething', param1, param2 ...)
我尝试过varios选项..
答案 0 :(得分:2)
我使用回调 filesuccessremove & fileuploaded ,可能会有更清洁的方式。这个api很复杂,但非常好。
$("#fileuploader").fileinput({
uploadUrl: 'uplurl',
allowedFileExtensions : ['jpg'],
maxFileSize: 800000,
maxFilesNum: 10,
language: 'pl',
})
.on('fileuploaded', function(event, data, previewId, index) {
$('div.file-preview-thumbnails #'+previewId).attr('server_id',data.response.server_id)
})
.on('filesuccessremove', function(event, id) {
event.preventDefault();
dp = $('div.file-preview-thumbnails #'+id).attr('server_id')
$.post('deletefilesurl', {'server_id':dp})
.done(function(r){
if(r=='ok'){
$('#'+id).fadeOut(300, function(){$(this).remove()})
}else{
$('#'+id).addClass('btn-danger').find('.file-actions').html(r)
}
})
.fail(function() {
$('#'+id).addClass('btn-danger').find('.file-actions').html('nothing deleted')
})
return false
});
代码缩进在这里可能不适合,这个想法,只是为了将存储的图像服务器id存储在html-data属性中,在文件上传,来自响应。并对filesuccessremove事件发表帖子。 注意evet.preventdDefault必须与call return 一起使用return false以防止删除缩略图,并在需要时手动删除它,如果进程正常
fom php我只是回复这个
return [
'error' => '',
'server_id' => $i, //last db insert id
];