Issue #1204💬 RespondidoAbierto el 14 de junio de 2018por afaraha8403Reacciones 0

El error desconocido $jscomp no está definido en uploadFile

Respuesta rápidapor afaraha8403

Hola a alguien aquí. Odio ver que todas mis horas de trabajo en esto se desperdicien. ¡Todas las opiniones son bienvenidas!

Lee la respuesta completa abajo ↓

Pregunta

Estoy enfrentando un error extraño que no puedo rastrear correctamente. Ocurre cuando arrastro y suelto una imagen para subirla.

! imagen

Cuando hago clic en la línea "at fetchFile (grapes.js:17107)" veo esta función

fetchFile: función fetchFile() {
    var model = this.model;
    var file = model.get('file');

if (archivo) {
      var fu = this.em.get('Gestor de Activos'). FileUploader();
      fu.uploadFile({
        dataTransfer: { archivos: [archivo] }
      }, función (res) {
        var obj = res && res.data && res.data[0];
        var src = obj & & obj.src;
        src && model.set({ src: src });
      });
      model.set ('archivo', '');
    }
  },

Por favor, ten en cuenta que he modificado el uploadFile con el siguiente código que he adaptado de la fuente original

Gestor de activos
    const initialAsset = {
        Upload: True, //Desactivar las subidas
        assets: assetsImágenes, //Assets como array
        openAssetsOnDrop: 0, //// Abre el gestor de activos una vez que los archivos se hayan dejado a través de la zona de caída
        dropzone: false, //Active the dropzone desactiva/oculta la zona de subida en el modal de assets
        dropzoneContent: dropzone_content,
        noAssets: 'No&nbsp;<b>hay recursos</b>&nbsp;aquí, arrastra para subir', //Mensaje de sin recursos
        uploadFile: (e) => {
            Archivos de lista eliminados
            const files = e.dataTransfer ? e.dataTransfer.files: e.target.files;
            respuesta const = {
                datos: [],
            };
            Poco probable, ahora está ampliamente apoyado
            si (! FileReader) {
                this.onUploadError(
                    nuevo error ('Plataforma no soportada, el lector de archivos no está definido')
                );
                regresar;
            }
            promesas const = [];
            const mimeTypeMatcher = /^(.+)\/(.+)$/;
            for (const file of files) {
                Para cada archivo un lector (para leer la URL base64)
                y una promesa (de rastrear y fusionar resultados y errores)
                promesa const = nueva Promesa((resolver, rechazar) => {
                    lector const = nuevo lector de archivos();
                    reader.addEventListener('load', (event) => {
                        sea tipificar;
                        nombre de const = file.name;
                        Intenta encontrar el tipo MIME del archivo.
                        const match = mimeTypeMatcher.exec(file.type);
                        si (coincidir) {
                            tipo = coincidencia[1]; La primera parte en MIME, "imagen" en imagen/png
                        } else {
                            tipo = archivo.tipo;
                        }
                        Si es una imagen, intenta encontrar su tamaño
                        si (tipo === 'imagen') {
                            const data = {
                                src: lector.resultado,
                                Nombre,
                                tipo,
                                altura: 0,
                                Ancho: 0,
                            };
                            const image = nueva Image();
                            image.addEventListener('error', (error) => {
                                rechazar (error);
                            });
                            image.addEventListener('load', () => {
                                data.altura = imagen.altura;
                                data.width = image.width;
                                resolve(data);
                            });
                            image.src = data.src;
                        } si no (tipo) {
                            No es una imagen, pero tiene un tipo
                            resolve({
                                src: lector.resultado,
                                Nombre,
                                tipo,
                            });
                        } else {
                            No se encontró ningún tipo, resuelve solo con la URL
                            resolve(reader.result);
                        }
                    });
                    reader.addEventListener('error', (error) => {
                        rechazar (error);
                    });
                    reader.addEventListener('abort', (error) => {
                        rechazar ('Abortado');
                    });
                    reader.readAsDataURL(archivo);
                });
                promesas.push(promise);
            }
            Promise.all(promises).then(
                (datos) => {
                    response.data = datos;
                    Iniciar subida de burbujas
                    attachImages(response.data, make_private, attach_to);
                },
                (error) => {
                    Uso - instance.publishState(cadena: Nombre del estado expuesto, Valor);
                    instance.publishState('error_messages', error.toString());
                    Uso - instance.triggerEvent(cadena: nombre del evento);
                    instance.triggerEvent('error');
                    console.warn(error);
                }
            );
        },

};

Agradecemos mucho vuestra ayuda

Respuestas (3)

afaraha840315 de junio de 2018

Hola a alguien aquí. Odio ver que todas mis horas de trabajo en esto se desperdicien. ¡Todas las opiniones son bienvenidas!

artf16 de junio de 2018

Cuando hago clic en la línea "at fetchFile (grapes.js:17107)" veo esta función

Que es solo un paso antes de que tengas un problema real... haz clic en el paso 'uploadFile' y encontrarás el problema

lock[bot]17 de septiembre de 2019

Este hilo se ha bloqueado automáticamente porque no ha habido actividad reciente desde que se cerró. Por favor, abre un nuevo problema para bugs relacionados.

Preguntas y respuestas relacionadas

Continúa investigando con debates sobre temas similares.

Plugins de pago que cumplen con este problema

Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.

Ver todos los plugins

Cargando recomendaciones de plugins de pago...

Opción gratuita

Consulta los plugins de código abierto de GrapesJS en GitHub O haz una búsqueda rápida en nuestro catálogo gratuito.

Explora plugins gratuitos →
Opción premium

Los plugins premium incluyen soporte, actualizaciones regulares y funciones listas para producción — ahorrando días de trabajo de integración.

Explora plugins premium →

Tutoriales relacionados

Guías detalladas sobre el mismo tema.

Todos los tutoriales →

Explorar categorías de plugins

Ve directamente a las páginas de categorías de plugins en el marketplace.