fix uploding bugs
This commit is contained in:
@@ -39,7 +39,13 @@ const fileOps = {
|
||||
|
||||
const response = await fetch('/api/files/upload', {
|
||||
method: 'POST',
|
||||
body: formData
|
||||
body: formData,
|
||||
// Añadir cache: 'no-store' para evitar problemas de caché durante la subida
|
||||
cache: 'no-store',
|
||||
headers: {
|
||||
// Agregar este encabezado para forzar recargas frescas
|
||||
'Cache-Control': 'no-cache, no-store, must-revalidate'
|
||||
}
|
||||
});
|
||||
|
||||
console.log('Respuesta del servidor:', {
|
||||
@@ -55,11 +61,57 @@ const fileOps = {
|
||||
if (response.ok) {
|
||||
const responseData = await response.json();
|
||||
console.log(`Successfully uploaded ${file.name}`, responseData);
|
||||
|
||||
// Agregar el archivo a la vista inmediatamente para mostrar retroalimentación instantánea
|
||||
// Esto permite que el usuario vea el archivo aunque el refresco posterior falle
|
||||
if (window.ui && window.ui.addFileToView) {
|
||||
console.log('Añadiendo archivo subido directamente a la vista:', responseData);
|
||||
window.ui.addFileToView(responseData);
|
||||
window.ui.updateFileIcons();
|
||||
}
|
||||
|
||||
if (i === totalFiles - 1) {
|
||||
// Last file uploaded
|
||||
console.log('Recargando lista de archivos después de subida');
|
||||
window.loadFiles();
|
||||
|
||||
try {
|
||||
// Esperar 1500ms para asegurar que los mapeos de ID se guarden
|
||||
// Tiempo aumentado significativamente para permitir al backend completar persistencia
|
||||
await new Promise(resolve => setTimeout(resolve, 1500));
|
||||
|
||||
// Forzar recarga de archivos con parámetro de bypass de caché
|
||||
const timestamp = new Date().getTime();
|
||||
const filesUrl = `/api/files?t=${timestamp}&folder_id=${window.app.currentPath || ''}`;
|
||||
|
||||
console.log(`Recargando lista de archivos desde: ${filesUrl}`);
|
||||
const filesResponse = await fetch(filesUrl, {
|
||||
cache: 'no-store',
|
||||
headers: {
|
||||
'Cache-Control': 'no-cache, no-store, must-revalidate',
|
||||
'Pragma': 'no-cache'
|
||||
}
|
||||
});
|
||||
|
||||
if (filesResponse.ok) {
|
||||
const files = await filesResponse.json();
|
||||
console.log(`Recarga de archivos completada, obtenidos ${files.length} archivos`);
|
||||
}
|
||||
|
||||
// Esperar un momento más antes de la recarga final
|
||||
await new Promise(resolve => setTimeout(resolve, 500));
|
||||
|
||||
// Hacer una única recarga final forzando refresco completo
|
||||
await window.loadFiles({forceRefresh: true});
|
||||
|
||||
// Asegurarse de que no haya recargas adicionales o duplicados
|
||||
} catch (reloadError) {
|
||||
console.error("Error durante recarga de archivos:", reloadError);
|
||||
// Intentar recargar lista de nuevo en caso de error
|
||||
await window.loadFiles({forceRefresh: true});
|
||||
// Segundo intento con retraso y forzando refresco
|
||||
setTimeout(() => window.loadFiles({forceRefresh: true}), 500);
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
document.getElementById('dropzone').style.display = 'none';
|
||||
uploadProgressDiv.style.display = 'none';
|
||||
|
||||
Reference in New Issue
Block a user