Foros del Web » Programando para Internet » PHP »

Descargar archivos al servidor

Estas en el tema de Descargar archivos al servidor en el foro de PHP en Foros del Web. Hola a tod@s. Quiero hacer una aplicación web simplemente para visualizar unas imágenes. La aplicación la tengo hecha, lo que pasa es que las imágenes ...
  #1 (permalink)  
Antiguo 26/10/2017, 12:32
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Descargar archivos al servidor

Hola a tod@s.

Quiero hacer una aplicación web simplemente para visualizar unas imágenes.
La aplicación la tengo hecha, lo que pasa es que las imágenes las tengo que conseguir de otra máquina distinta a donde está el servidor. Las imágenes cambian cada día, así que he puesto un botón en la aplicación para que al pulsarlo se descarguen las nuevas imágenes para mostrarlas. Se me ha ocurrido dos formas de hacerlo:

La primera fue que el botón para actualizar las imágenes ejecutara un scritp de bash en el servidor (linux) que descargara las imágenes de la otra máquina por ftp. Este script me funciona bien cuando lo ejecuto directamente en el servidor pero no me funciona cuando lo ejecuto desde el lado cliente al pulsar el botón. Simplemente pongo esto al principio del código html:

Código PHP:
<?php  
      exec
("script.sh"); 
?>
El botón lo que hace es recargar la página para que se ejecute esa instrucción al principio.
Ya digo que ejecutando el script.sh directamente en el servidor funciona perfectamente.

La otra forma que se me ocurrió es usar puro php para descargar las fotos por ftp con las instrucciones que tiene este lenguaje para ello como ftp_fget, pero no se bien como hacerlo. He buscado por internet pero no me aclaro.

Pienso que la primera opción me debería funcionar ya que el script funciona perfectamente, pero debe haber algún problema que hace que no lo pueda ejecutar desde el cliente.

La solución de poner un cron en el servidor que ejecute el script cada x tiempo ya me resuelve el problema en parte, pero yo quiero que se pueda hacer desde el botón de la aplicación.

¿Sabe alguien cual puede ser el problema que estoy teniendo?

Gracias. Un saludo.
  #2 (permalink)  
Antiguo 26/10/2017, 14:59
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Descargar archivos al servidor

Como no hablas mucho sobre el programa, aqui van mis dudas
1. Que lenguaje usas?

2. El programa externo, usa sockets? si es así verifica y/o valida la conexión entre el programa y el host, también los cortafuejos, antivirus y toda esa bazofia.

Posible solución:

Suponiendo que el programa retorna el contenido en binarío de la imagen, lo mejor sería usar passthru, este al igual que exec ejecuta un comando de sistema pero a su vez muestra el valor (binario) retornado por la ejecución.

Entonces harías algo así

Código PHP:
Ver original
  1. <?php
  2.  
  3. $program = "script.sh";
  4.  
  5. header('Content-Type: image/png'); //aca cambias a png, jpeg, gif o bmp
  6. passthru($program);
  7.  
  8. ?>

3. Las imágenes estan hospedadas en un host que cuenta con protorocolos http(s) y tiene instalado un servidor apache? Si es así

Solución:

Hacer un script que haga toda la gestión interna de proceso de imagen y simplemente mostrar

<img src="https://host-externo.com/show-image.php" />

Donde show-image.php hace la gestion y usa una de estas funciones (documentacion en php.net):

imagecreatefromjpeg
imagecreatefrompng
imagecreatefromgif
imagecreatefrombmp

Eso por ahora

Última edición por alvaro_trewhela; 26/10/2017 a las 19:26
  #3 (permalink)  
Antiguo 27/10/2017, 15:22
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Descargar archivos al servidor

Podrías intentar también con shell_exec
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #4 (permalink)  
Antiguo 29/10/2017, 10:37
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Descargar archivos al servidor

Gracias por contestar.
En primer lugar decir que shell_exec tampoco me funciona.
En segundo lugar, el programa tampoco creo que sea importante, ni siquiera el tema de la descarga de los archivos por ftp. La cuestión es que no puedo ejecutar un script de bash mediante php. No se si estoy haciendo algo mal o es otro problema.

Supongamos un script llamado script.sh, tan simple como crear un directorio en el servidor:

#!/bin/bash
# creo el directorio prueba
mkdir prueba

Intento ejecutarlo desde una máquina clliente con una aplicación web en php y no lo consigo.

El servidor y el cliente forman parte de la red local de mi oficina.
El cliente tiene windows y el servidor linux con apache.

Estoy pensando que puede tratarse de un tema de permisos, pero no tengo mucha idea de linux y no se como comprobarlo. Tampoco me da ningún mensaje de error, así que no se que hacer.
  #5 (permalink)  
Antiguo 29/10/2017, 11:45
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Descargar archivos al servidor

Bueno, pues ya está solucionado, era una estupidez. Era simplemente un error de sintaxis. Para ejecutar un script hay que hacerlo así:

Código PHP:
<?php   
      exec
("./script.sh");  
?>
Un saludo.

Etiquetas: html, servidor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:09.