Использую в проекте Bootstrap FileInput (
http://plugins.krajee.com/file-input ).
Плагин всем устраивает - сама по себе загрузка в Async-режиме работает без проблем. Всё хорошо. Проблема в следующем: в проекте возникла необходимость сохранять "черновики форм". С сохранением самой формы проблем нет, а вот с загружаемыми файлами - проблема. Сохранить файлы инициированием метода upload - не проблема. Всё сохраняется на сервер. А вот потом при загрузке страницы надо в аплоадер подгрузить файлы.
Тест-файл при сохранении сохраняется в /uploads/test.jpg
Сейчас пробую так:
HTML:
<input type="file" id="t1" name="t1" class="file-input-ajax" multiple="multiple" data-signed="1">
<button id="upl">Upload</button>
let uploader_options = {
allowedFileExtensions: ["jpg", "png", "tiff"],
language: 'ru',
fileActionSettings: {showUpload: false, showZoom: false},
showUpload: false,
uploadAsync: true,
overwriteInitial: false,
append: true,
maxFileCount: 5,
browseOnZoneClick: true,
uploadExtraData: function () {
var ret = {};
ret['field'] = $(this)[0].uploadFileAttr;
ret['obj_type'] = 'apply';
ret['obj_action'] = 'send';
return ret;
},
uploadUrl: "/ajax/fileupload.php",
initialPreview: ['/uploads/test.jpg'],
initialPreviewAsData: true,
initialPreviewConfig: [{ caption: "test.jpg", size: 72564 }]
};
$(function() {
var blob = null;
var xhr = new XMLHttpRequest();
xhr.open("GET", '/uploads/test.jpg');
xhr.responseType = "blob";
xhr.onload = function()
{
blob = xhr.response;//xhr.response is now a blob object
console.log(blob);
$('#t1').fileinput('AddToStack',blob);
};
xhr.send();
$('#t1').fileinput(uploader_options);
$('#upl').on('click', function(){
$('#t1').fileinput('upload');
});
});
Превью подгружается корректно, но при попытке upload - содержимое файла не прилетает на сервер (хотя запрос генерируется).
Подгрузка через
$('#t1').fileinput('AddToStack',blob);
Это уже "от безнадёги". Есть у кого опыт с этим плагином?
Как инициализировать с подгрузкой с сервера файлов? (причём файлы потом должны именно полноценно загрузиться ещё раз, так как идея в том, что пользователь должен иметь возможность убрать или добавить файлы после загрузки "черновика" - там могут быть как ранее сохранённые, так и вообще другой новый набор - так что надо грузить).