jquery file upload blueimp

Complemento de carga de archivos jQuery: ¿Es posible preservar la estructura de las carpetas cargadas?



file upload (1)

Esto debería ser posible en los navegadores webkit utilizando el objeto .dataTransfer arrastrar y soltar en el evento de drop ; .webkitGetAsEntry() ; webkitRequestFileSystem getDirectory() para crear un directorio que tenga el mismo nombre que la carpeta cargada, .createReader() en DirectoryEntry , readEntries() para iterar entradas en el directorio, llame a .copyTo() para cada FileEntry con el destino que se está creando el directorio con el nombre del directorio cargado.

La carpeta ahora debería ser accesible usando webkitRequestFileSystem() , luego llamando a .getDirectory() con el nombre del directorio como primer parámetro y el objeto de opciones vacías {} como segundo parámetro.

Alternativamente, puede acceder a la carpeta desde el sistema de archivos del usuario real en la carpeta de perfil de cromo o cromo utilizando la interfaz gráfica de usuario del administrador de archivos o la interfaz de línea de comandos. O cree una secuencia de comandos local para copiar carpetas en el File System a otro directorio y cambie el nombre de las carpetas a los nombres originales de las carpetas que se cargaron. Las rutas de carpeta y archivo no están ajustadas, solo los nombres de carpeta.

es capaz de preservar la estructura de las subcarpetas cargadas (= cargar 1 carpeta con 3 subcarpetas, cada una con varios archivos)?

En el administrador de archivos, la carpeta no se llamaría igual que el directorio cargado, aunque debería retener la estructura de carpetas y archivos. La carpeta debe ubicarse en la última carpeta del File System en la carpeta de perfil de Chrome, antes de la carpeta Origins . Consulte también ¿Cómo escribir en un archivo (directorio de usuarios) usando JavaScript?

function errorHandler(e) { console.log(e) } function handleFiles(e) { console.log("file", file) } function handleDrop(event) { var dt = event.dataTransfer; for (var i = 0; i < event.dataTransfer.items.length; i++) { var entry = dt.items[i].webkitGetAsEntry(); if (entry.isFile) { console.log("isFile", entry.isFile, entry); entry.file(handleFiles); } else if (entry.isDirectory) { console.log("isDirectory", entry.isDirectory, entry); window.webkitRequestFileSystem(window.TEMPORARY, 1024 * 1024 , function(fs) { // create directory with uploaded directory name fs.root.getDirectory(entry.name, { create: true }, function(dirEntry) { // read folders, files in uploaded directory var reader = entry.createReader(); reader.readEntries(function(entries) { entries.forEach(function(file) { // copy files to new directory file.copyTo(dirEntry); console.log("file:", file, "/ncopied to directory:", dirEntry) }) }) }, errorHandler) }, errorHandler) } } }

plnkr http://plnkr.co/edit/oUIhwUc3CDxI64SrvxIh?p=preview

Estoy probando este complemento ( https://github.com/blueimp/jQuery-File-Upload ) e interesante en la carga de carpetas.

Me pregunto si el complemento puede preservar la estructura de las subcarpetas cargadas (= cargar 1 carpeta con 3 subcarpetas, cada una con varios archivos).