Я работаю над приложением laravel, и я создал блок dropzone, и в настоящее время я извлекаю библиотеку изображений и предварительно загружаю их в dropzone, которая прекрасно работает, вот так
Зона сброса
var roomImagesEdit = new Dropzone('#room-images #room_images_edit',{
url: '/ajax/rooms/editRoomImages',
autoProcessQueue:false,
addRemoveLinks:true,
paramName: 'room_image', // The name that will be used to transfer the file
init: function(){
//Get the current images for this room and feed them in
$.getJSON('/ajax/rooms/getRoomImages/' + $('#edit-room-form input[name="room_id"]').val(), function(data) {
$.each(data, function(key,value){ //loop through it
//here we get the file name and size as response
var mockFile = {
name: value.nice_name,
size: value.size
};
roomImagesEdit.options.addedfile.call(roomImagesEdit, mockFile);
roomImagesEdit.files.push(mockFile);
roomImagesEdit.options.thumbnail.call(roomImagesEdit, mockFile, "/storage/room_images/"+value.name);
});
});
},
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
});
Ajax / комнаты / editRoomImages
//Get the room first
$room = Rooms::findOrFail($id);
//Start the results object
$result = [];
//Get the primary photo
$primaryPhoto = RoomPhotos::where('id', $room->primary_photo)->first();
//Add the primary photo to the beginning of the results object
$primaryPhotoArray['name'] = $primaryPhoto['name'];
$primaryPhotoArray['nice_name'] = $primaryPhoto['nice_name'];
$primaryPhotoArray['size'] = filesize("storage/room_images/".$primaryPhoto['name']);
$result[] = $primaryPhotoArray;
//Loop through the result
foreach($room->photos as $file){
//If the file name is the same as the primary photo file name, jump over it
if($file->name == $primaryPhoto['name']){
continue;
} else {
$obj['name'] = $file->name;
$obj['nice_name'] = $file->nice_name;
$obj['size'] = filesize("storage/room_images/".$file->name);
$result[] = $obj;
}
}
//Now we have our photos in an object, with the primary photo first
header('Content-Type: application/json');
echo json_encode($result);
Я понимаю, что это просто добавление фиктивных файлов, но на самом деле мне нужно получить файлы из указанных мной URL-адресов и повторно добавить их в dropzone, чтобы я мог повторно обрабатывать их каждый раз (для изменения таких вещей, как порядок изображений).
Я искал что-то похожее на весь интернет, и я не могу найти ни одного кода, который бы достиг этого, все остальные примеры просто добавляют макет изображения только для демонстрации.
Наверняка должен быть способ достичь этого ?!
Задача ещё не решена.
Других решений пока нет …