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.

Obtener o cargar archivo de datos en el servidor.

Tengo datos JSON, recibo datos JSON del backend con el siguiente formato.

{
 id: 2 
 name: archivo impian
 file : /home/bakcend/go/uploads/173ba017f27b69b42d7e747.png //ruta backend
}

Actualmente, hay un directorio separado, los archivos cargados desde el frontend se van a la carpeta del backend.

- home 
  - backend
    - go
      - uploads
      - api

Esta es la carpeta del frontend.

- home
  - frontend
    - src
      - view
      - component
      - otros

URL backend: …8001
URL frontend: …8002

Solo un puerto diferente.

¿Cómo puedo cargar datos fuera de la raíz del frontend?

<b-img src="http://....:8001/home/backend/go/upload/173ba017f27b69b42d7e747.png"></b-img>

Lo intenté pero no carga.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en javascript, php y vue.js, puedes cargar datos fuera de la raíz del front end accediendo al punto final del backend de la API que devuelve los datos del archivo en formato codificado en base64. Luego puedes convertir los datos codificados en base64 en una imagen y mostrarla en el front end.

    Aquí tienes un ejemplo de cómo hacerlo usando Vue.js:

    <template>
      <div>
        <img :src="imageUrl" alt="Archivo">
      </div>
    </template>
    
    <script>
      export default {
        data() {
          return {
            fileData: {}, // Objeto JSON recibido desde el backend
            imageUrl: '', // Para almacenar la URL de la imagen
          };
        },
        methods: {
          async loadImage() {
            const response = await fetch('http://localhost:8001/api/file/' + this.fileData.id);
            const data = await response.json();
            // Convertir base64 a imagen
            this.imageUrl = 'data:image/png;base64,' + data.file;
          },
        },
        created() {
          // Llama al método loadImage() al crear el componente
          this.loadImage();
        },
      };
    </script>
    

    En el código anterior, estamos obteniendo los datos del archivo desde el punto final de la API del backend /api/file/:id. Luego estamos utilizando la función window.btoa() para convertir los datos binarios al formato codificado en base64. Finalmente, estamos asignando la variable imageUrl con los datos codificados en base64 y el tipo MIME correspondiente.

    ¡Espero que esto te ayude!

Comments are closed.