Показать сообщение отдельно
  #1 (permalink)  
Старый 09.11.2018, 11:48
Новичок на форуме
Отправить личное сообщение для andysh888 Посмотреть профиль Найти все сообщения от andysh888
 
Регистрация: 09.11.2018
Сообщений: 1

Bootstrap FileInput - инициализация с предзагрузкой файла
Использую в проекте 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);

Это уже "от безнадёги". Есть у кого опыт с этим плагином?

Как инициализировать с подгрузкой с сервера файлов? (причём файлы потом должны именно полноценно загрузиться ещё раз, так как идея в том, что пользователь должен иметь возможность убрать или добавить файлы после загрузки "черновика" - там могут быть как ранее сохранённые, так и вообще другой новый набор - так что надо грузить).
Ответить с цитированием