es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La carga de archivos a BIM 360 funciona en Postman, pero no con React JS.

Hola, soy nuevo en Autodesk Forge. Estaba siguiendo el tutorial para subir un archivo a BIM 360. La carga funciona cuando uso Postman, pero no puedo ver el archivo cuando lo cargo usando React JS.

Estoy utilizando FileReader y leyendo el archivo como BinaryString. Donde token es el token de acceso.

onInputChange(e){
    let files = e.target.files;
    let reader = new FileReader(); 
    reader.readAsBinaryString(files[0]);

    reader.onload = (e) => {
        const buffer = Buffer.from(e.target.result, 'base64');

        var myHeaders = new Headers();
        myHeaders.append("Authorization", `Bearer ${token}`);
        myHeaders.append("Content-Type", "application/octet-stream");

        var requestOpts = {
            method: 'PUT',
            headers: myHeaders,
            body: buffer,
        };


        fetch('https://developer.api.autodesk.com/oss/
            v2/buckets/:bucketKey/objects/:objectName'
            , requestOpts)
        .then(response => response.json())
    }
}

El archivo se carga correctamente, pero no puedo verlo en BIM 360. Imagen a continuación.

bim360 file image

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema podría estar relacionado con la forma en que el archivo se está codificando o enviando en la solicitud. Aquí hay algunas sugerencias que podrían ayudarte:

    1. En lugar de usar readAsBinaryString, intenta usar readAsArrayBuffer. Esto te dará un búfer binario que se puede enviar directamente en el cuerpo de la solicitud.
    reader.readAsArrayBuffer(files[0]);
    
    reader.onload = (e) => {
      const buffer = e.target.result;
      // ...
    }
    
    1. Asegúrate de que el encabezado Content-Disposition esté configurado correctamente. Este encabezado le indica a BIM 360 cómo manejar el archivo cargado. Intenta configurar el encabezado de esta manera:
    myHeaders.append('Content-Disposition', 'inline; filename="nombrearchivo.ext"');
    

    Reemplaza nombrearchivo.ext por el nombre real de tu archivo, incluyendo la extensión.

    1. Al enviar la solicitud, asegúrate de que estás usando el bucketKey y objectName correctos. Estos deberían coincidir con los valores que estás utilizando en Postman.

    Si pruebas estas sugerencias y aún tienes problemas, puede ser útil revisar la documentación de la API de BIM 360 y asegurarte de seguir todos los pasos correctos para cargar un archivo. También puede ser útil verificar la respuesta del servidor para ver si hay mensajes de error o pistas sobre por qué el archivo no se muestra correctamente.

Comments are closed.