Foros del Web » Programando para Internet » PHP »

Ejecutar programa

Estas en el tema de Ejecutar programa en el foro de PHP en Foros del Web. Hola a tod@s! Tengo un problemita y necesito que me echeis una mano ¿Es posible que cuando yo suba un fichero a mi web se ...
  #1 (permalink)  
Antiguo 30/09/2008, 12:38
 
Fecha de Ingreso: junio-2008
Mensajes: 34
Antigüedad: 15 años, 10 meses
Puntos: 0
Ejecutar programa

Hola a tod@s!

Tengo un problemita y necesito que me echeis una mano

¿Es posible que cuando yo suba un fichero a mi web se ejecute un programa que tengo instalado en mi servido?

Me explico: Tengo creado un apartado para subir ficheros a mi web (un upload). El fichero que subo se almacena en una carpeta de mi servidor. ¿Cómo podría hacer que un programa esté mirando a esa carpeta para que cuando entre algo se ejecute?

¿Alguien sabe algo? ¡¡¡¡¡¡¡¡¡MUCHISIMAS GRACIAS DE ANTE MANO!!!!!!
  #2 (permalink)  
Antiguo 30/09/2008, 12:57
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Ejecutar programa

Puedes usar la funcion system() de php despues de una subida exitosa. Esta funcion lo que hace es ejecutar lo que le pases como parámetro.

NOTA: Si no dispones de los privilegios suficientes en tu hosting puede que no te funcione.

Mas info en http://es.php.net/manual/es/function.system.php

Saludos!
  #3 (permalink)  
Antiguo 30/09/2008, 13:50
 
Fecha de Ingreso: junio-2008
Mensajes: 34
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Ejecutar programa

Hola Synkronice,

La función la entiendo OK

string system ( string $comando [, int &$val_retorno ] )

Pero el problema es el $comando. Ese parámetro es para definir el comando que será ejecutado. No puedo poner un nombre fijo porque nunca voy a saber como se va a llamar el fichero que me van a subir. ¿Me serviría un $*.*?

Muchas gracias! Un saludo!!!!
  #4 (permalink)  
Antiguo 30/09/2008, 13:56
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Respuesta: Ejecutar programa

... ¿son los archivos que subirás los que ejecutarás?

Como sea, el parámetro comando se refiere a lo que pondrías en la línea de comando tal cual. El nombre del archivo se puede conocer, vendría dentro del arreglo $_FILES ... ¿o cómo lo haces?
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 30/09/2008, 14:28
 
Fecha de Ingreso: junio-2008
Mensajes: 34
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Ejecutar programa

Hola jam1138,

Es lo que no se. Como hacerlo!

Yo quiero que todos los ficheros que se suban a una carpeta concreta los ejecute un programa. Por ejemplo, un antivirus.

Pero no se como hacerlo. ¿Sabeis como lo puedo hacer?

Muchas gracias!!
  #6 (permalink)  
Antiguo 30/09/2008, 14:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Ejecutar programa

Pues puedes hacer algo así:
Código php:
Ver original
  1. $nombre = $_FILES['archivo']['nombre'];
  2.  
  3. $comando = "./escanea $nombre";
  4. system($comando);

Saludos.
  #7 (permalink)  
Antiguo 30/09/2008, 14:36
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ejecutar programa

Los antivirus de por sí ya deberían mirar el contenido de lo que se baja.

Pero yendo al caso, para ejecutar un programa y pasarle un archivo solo debes poner:
Código:
nombreprograma archivo
EDITO: Lo siento GatorV por el choque .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 14:40.