Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Copiar fichero recién subido a otro directorio

Estas en el tema de Copiar fichero recién subido a otro directorio en el foro de PHP en Foros del Web. Vuelvo a la carga, ahora ya he conseguido subir el vídeo, lo he convertido con ffmpeg y me gustaría copiarlo al directorio donde Wowza almacena ...
  #1 (permalink)  
Antiguo 24/04/2016, 03:00
 
Fecha de Ingreso: abril-2016
Mensajes: 15
Antigüedad: 8 años
Puntos: 0
Copiar fichero recién subido a otro directorio

Vuelvo a la carga, ahora ya he conseguido subir el vídeo, lo he convertido con ffmpeg y me gustaría copiarlo al directorio donde Wowza almacena los vídeos:

Estoy intentando copiar el fichero convertido a ese directorio pero no hay manera.


Código PHP:
  $convertir=(exec("ffmpeg -i $uploadfile -s 320*240 $nombre.flv 2>&1",$output)); 

  echo 
"<br>Nuevo fichero: $nombre.flv <br><br>"


if (
copy('/$nombre.flv','/usr/local/WowzaStreamingEngine-4.4.1/content/$nombre.flv')) 
{
    echo 
"El fichero ha sido copiado en Wowza\n";
} else {
    echo 
"Se ha producido un error al intentar copiar el fichero\n";

Me devuelve el siguiente error:
Warning: copy(/$nombre.flv): failed to open stream: No such file or directory in /var/www/html/probando2/upload2.php on line 21

Siendo la línea 21 la del "if " que os copio. He probado con comillas dobles, pues he googleado antes de venir a dar la tabarra y no me sirvió :D


Graciaas



PD: Viene de aquí: http://www.forosdelweb.com/f18/subir-video-convertir-reproducir-1151282/
  #2 (permalink)  
Antiguo 24/04/2016, 03:12
 
Fecha de Ingreso: abril-2016
Mensajes: 15
Antigüedad: 8 años
Puntos: 0
Respuesta: Copiar fichero recién subido a otro directorio

La idea es que sea dinámico, que con nombres diferentes de ficheros que vaya subiendo, los copie diréctamente (o mueva), también me sirve que los mueva.

También me serviría que el output del ffmpeg apuntase directamente a la carpeta del Wowza
  #3 (permalink)  
Antiguo 24/04/2016, 03:52
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Copiar fichero recién subido a otro directorio

Pues básicamente tu error te dice No existe el fichero o directorio.

Asegúrate de que las rutas son correctas.
__________________
Unset($vida['malRollo']);
  #4 (permalink)  
Antiguo 24/04/2016, 04:08
 
Fecha de Ingreso: abril-2016
Mensajes: 15
Antigüedad: 8 años
Puntos: 0
Respuesta: Copiar fichero recién subido a otro directorio

Cita:
Iniciado por xerifandtomas Ver Mensaje
Pues básicamente tu error te dice No existe el fichero o directorio.

Asegúrate de que las rutas son correctas.
Esta es la ruta (copiada literal del WinSCP) donde quiero copiar el fichero codificado:

/usr/local/WowzaStreamingEngine-4.4.1/content

Tengo permisos completos dados.


Estoy intentando hacerlo diréctamente desde el ffmpeg, no me da error, pero el archivo no aparece en el destino:

exec("ffmpeg -i $uploadfile -s 320*240 /usr/local/WowzaStreamingEngine-4.4.1/content/$nombre.flv 2>&1",$output));
  #5 (permalink)  
Antiguo 24/04/2016, 04:17
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Copiar fichero recién subido a otro directorio

Si te fijas en el error que te arroja no te está leyendo el nombre del archivo si no que esta tomando el nombre literal de la variable $nombre en lugar de lo contenido en esa variable.

Prueba asi:
Código PHP:
Ver original
  1. $convertir=(exec("ffmpeg -i $uploadfile -s 320*240 $nombre.flv 2>&1",$output));  
  2.  
  3.   echo "<br>Nuevo fichero: $nombre.flv <br><br>";  
  4.  
  5.  
  6. if (copy('/'.$nombre.'.flv','/usr/local/WowzaStreamingEngine-4.4.1/content/'.$nombre.'.flv'))  
  7. {
  8.     echo "El fichero ha sido copiado en Wowza\n";
  9. } else {
  10.     echo "Se ha producido un error al intentar copiar el fichero\n";
  11. }

El tema explicado de forma simple, es que cuando se utilizan comillas simples ' en lugar de las dobles " php no interpreta las variables que pueda haber contenidas en la cadena, sino que lo toma como una cadena que sin variables
__________________
Unset($vida['malRollo']);
  #6 (permalink)  
Antiguo 24/04/2016, 04:22
 
Fecha de Ingreso: abril-2016
Mensajes: 15
Antigüedad: 8 años
Puntos: 0
Respuesta: Copiar fichero recién subido a otro directorio

Cita:
Iniciado por xerifandtomas Ver Mensaje
Si te fijas en el error que te arroja no te está leyendo el nombre del archivo si no que esta tomando el nombre literal de la variable $nombre en lugar de lo contenido en esa variable.

Prueba asi:
Código PHP:
Ver original
  1. $convertir=(exec("ffmpeg -i $uploadfile -s 320*240 $nombre.flv 2>&1",$output));  
  2.  
  3.   echo "<br>Nuevo fichero: $nombre.flv <br><br>";  
  4.  
  5.  
  6. if (copy('/'.$nombre.'.flv','/usr/local/WowzaStreamingEngine-4.4.1/content/'.$nombre.'.flv'))  
  7. {
  8.     echo "El fichero ha sido copiado en Wowza\n";
  9. } else {
  10.     echo "Se ha producido un error al intentar copiar el fichero\n";
  11. }

El tema explicado de forma simple, es que cuando se utilizan comillas simples ' en lugar de las dobles " php no interpreta las variables que pueda haber contenidas en la cadena, sino que lo toma como una cadena que sin variables

Mil gracias, pero sigue dando el mismo error :(
  #7 (permalink)  
Antiguo 24/04/2016, 04:27
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Copiar fichero recién subido a otro directorio

Es posible que te de el mismo error pero no creo que sea exactamente igual.

Cita:
Me devuelve el siguiente error:
Warning: copy(/$nombre.flv): failed to open stream: No such file or directory in /var/www/html/probando2/upload2.php on line 21
La parte que he marcado en negrita y subrayado ha debido de variar.
__________________
Unset($vida['malRollo']);
  #8 (permalink)  
Antiguo 24/04/2016, 04:45
 
Fecha de Ingreso: abril-2016
Mensajes: 15
Antigüedad: 8 años
Puntos: 0
Respuesta: Copiar fichero recién subido a otro directorio

Cita:
Iniciado por xerifandtomas Ver Mensaje
Es posible que te de el mismo error pero no creo que sea exactamente igual.



La parte que he marcado en negrita y subrayado ha debido de variar.
Hace algo raro:

Warning: copy(/usr/local/WowzaStreamingEngine-4.4.1/content//var/www/html/probando2/video.flv):

Intenta buscar ese directorio, como que junta el directorio local donde guarda el vídeo codificado, y el directorio a donde lo quiero copiar
  #9 (permalink)  
Antiguo 24/04/2016, 07:49
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Copiar fichero recién subido a otro directorio

Imprime la variable $nombre por separado a ver que contiene.
__________________
Unset($vida['malRollo']);
  #10 (permalink)  
Antiguo 24/04/2016, 08:56
 
Fecha de Ingreso: abril-2016
Mensajes: 15
Antigüedad: 8 años
Puntos: 0
Respuesta: Copiar fichero recién subido a otro directorio

nombre es /var/www/html/probando2/video

El archivo subido es video.mp4 por lo que nombre es la ruta sin la extensión??¿?¿?
  #11 (permalink)  
Antiguo 24/04/2016, 09:06
 
Fecha de Ingreso: abril-2016
Mensajes: 15
Antigüedad: 8 años
Puntos: 0
Respuesta: Copiar fichero recién subido a otro directorio

En $convertir tengo /var/www/html/probando2/video.flv que es el archivo codificado con su ruta y extensión, cómo puedo seleccionar sólo el archivo y extensión para poder copiarlo?
  #12 (permalink)  
Antiguo 24/04/2016, 12:51
 
Fecha de Ingreso: abril-2016
Mensajes: 15
Antigüedad: 8 años
Puntos: 0
Respuesta: Copiar fichero recién subido a otro directorio

Al final he decidido guardar directamente el archivo subido y codificado en el directorio destino.

Gracias
  #13 (permalink)  
Antiguo 24/04/2016, 13:25
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Copiar fichero recién subido a otro directorio

Hola berto96,

Código PHP:
Ver original
  1. $convertir = "/var/www/html/probando2/video.flv";
  2. $trozos = explode("/", "/var/www/html/probando2/video.flv");
  3. $archivo = $trozos[5];
  4. echo $archivo; // video.flv

Espero que te sirva.

Etiquetas: directorio, fichero, html
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 19:06.