> Faqs > Visualizar un archivo de Word (DOCX) en pagina web (intranet)

Visualizar un archivo de Word (DOCX) en pagina web (intranet)

Hola a todos estoy creando uan página (intranet) en la empresa donde trabajo para poder cargar archivos en el servidor (CRUD) todo funciona muy bien. Puedo visualizar archivos .pdf, .jpeg, .jpg, .png, .txt, .xml

Lo que me hace falta es poder visualizar en el navegador archivos de Office (Word, Excel) de forma embebida en un frame en un modal de BOOTSTRAP 4

Les comparto el código de la función que estoy tratando de implementar:

public function extensionArchivo($nombre, $extension)
    {
        $idUser = $_SESSION['idUser']; //Variable que trae el Usuario que inició sesión
        $ruta = "../server/".$idUser."/".$nombre;
        switch ($extension) {
            case 'png':
                return '<img style="width:100%" src="'.$ruta.'">';
                break;
            case 'jpg':
                return '<img style="width:100%" src="' . $ruta . '">';
                break;
            case 'jpeg':
                return '<img style="width:100%" src="' . $ruta . '">';
                break;
            case 'pdf':
                return '<embed src="' . $ruta . '#toolbar=0&navpanes=0&scrollbar=0" type="application/pdf" width="100%" height="420px" />';
                break;
            case 'xml':
                return '<embed src="' . $ruta . '#toolbar=0&navpanes=0&scrollbar=0" type="text/xml" width="100%" height="420px" />';
                break;
            case 'txt':
                return '<embed src="' . $ruta . '#toolbar=0&navpanes=0&scrollbar=0" type="text/text" width="100%" height="420px" />';
                break;
            case 'docx':
                return '<iframe src="https://onlinedocumentviewer.com/Viewer/?'.$ruta.'" width="100%" height="400px"></iframe>';          
                break;          
            default:
                # code...
                break;
        }
    }    

La variable $ruta es la que trae la ubicación (en el servidor de la empresa) junto con el nombre del archivo.

Espero me puedan ayudar con sus aportes, saludos!!!

Respuestas

No hay manera de que se pueda mostrar un documento de Word o Excel dentro del navegador. Tal cual, en la web solo existiría la posibilidad de descarga del archivo... para que luego el cliente lo abra con su propio programa de escritorio.

Ahora bien, puedes usar servicios de terceros que sí que permiten mostrar un archivo de Word o Excel dentro del página web. Aquí tendrías dos opciones:

  • Subir los archivos a un servicio que permita verlos online, como dropbox, y luego enlazar con Dropbox
  • Usar los visores de documentos de Office 365 o los de Google Drive, por ejemplo.

Para la segunda opción, que me figuro que sería la más interesante porque en principio creo que no necesitarías subir el archivo a ningún lugar, te recomiendo leer esta pregunta de StackOverflow.

Agustín
233 5 15 13