PHP - move_uploaded_filed() vs. copy()

 
Vista:
sin imagen de perfil

move_uploaded_filed() vs. copy()

Publicado por Elisa (71 intervenciones) el 29/05/2014 08:27:10
Buenos días.

Estoy subiendo ficheros a un servidor con XAMPP. El programa tiene un límite de megas de subida y se me ha presentado un problema.
Necesito subir videos y me paso de tamaño, asiq he pensado en copiar archivos (función copy), en vez de subirlos (move_uploaded_filed). El problema es que para copiar, necesito la ruta de origen y destino, y al tener un campo FILE para examinar los ficheros, no puedo conocer esa ruta de origen...no se me ocurre la solución y llevo unos días con ello.

Alguien me da alguna idea para solucionar el problema del límite con move_uploaded_filed o de la ruta de origen para copy??

Muchas gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

move_uploaded_filed() vs. copy()

Publicado por xve (6935 intervenciones) el 29/05/2014 10:22:25
Hola Elisa, como que no puedes saber la ruta originen? si tienes el archivo, tienes la ruta de originen... no se si no entiendo bien tu problema... me puedes comentar con mas detalle lo que estas haciendo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

move_uploaded_filed() vs. copy()

Publicado por Elisa (71 intervenciones) el 29/05/2014 11:13:58
A ver si me explico mejor:

Tengo ya el código para subir, al servidor y a Mysql ficheros con distinta extensión. Todo funciona bien, hasta ahí no tengo problema. Yo necesito subir videos, y al mover un video a un destino con
move_uploaded_file($_FILES['cliente']['tmp_name'], $nombreCompleto); no me lo permite debido aq con xampp y post, me paso de tamaño de subida.

Debido a ello, pensé en usar la función copy(), ya que al comprobar con un código muy sencillo, he visto que me copia videos de carpeta a carpeta sin problema. Lo que sucede es que en los argumentos de copy necesito escribir de antemano la ruta de origen y destino, mientras que en move_uoload, al usar input type file, directamente me recoge el archivo y solo necesito saber el destino donde quiero moverlo.

Lo que pretendo es subir videos a un servidor...asiq he pensado en que quizá, sino con php con otro lenguaje, pueda ser posible recoger esa ruta que obtenemos sin saberlo al examinar con input type file para meterlo en copy.
copy('C:/imagen2/aa.jpg', 'C:/prueba/');

ya que sólo puedo copiar de carpeta a carpeta introduciendo un nombre fijo de archivo como primer argumento, tal y como puede verse en la función.

Espero haberme explicado mejor ahora y que me podais ayudar. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

move_uploaded_filed() vs. copy()

Publicado por xve (6935 intervenciones) el 29/05/2014 14:46:46
Hola Elisa, para tu problema, seria tan simple como aumentar el limite de subida de archivos, no?

De todas maneras, desde PHP sobre Apache, puedes saber la ruta desde la c: hasta la raíz de tu web con:
$_SERVER['DOCUMENT_ROOT']

Espero que te sirva... coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

move_uploaded_filed() vs. copy()

Publicado por Elisa (71 intervenciones) el 29/05/2014 17:57:43
Lo estoy probando pero...no tengo muy claro en mi caso, qué es lo que debería meter dentro de los corchetes para que de momento me muestre la ruta de origen que quiero conseguir para después meterla en copy. Muestro un trozo de mi código para aclarar lo que quiero:

1
2
3
4
5
6
7
8
9
10
11
12
13
//destino en el que queremos almacenar el video
$nombreDirectorio = "C:/imagen/";
//fichero que recojo con el input type file de mi html
$nombreFichero = $_FILES['cliente']['name'];
 
	//validamos si el archivo se ha subido mediante POST. Es útil para evitar archivos maliciosos.
	if (is_uploaded_file($_FILES['cliente']['tmp_name'])){
		$ruta = $_SERVER['$nombreFichero'];
		echo $ruta;
		copy("$ruta"."$nombreFichero", "$nombreDirectorio"."$nombreFichero");
        }else{
                echo "Ha ocurrido un error";
        }

La cosa es que he conseguido que me copie la imagen que selecciono a la carpeta /imagen, pero no me imprime por pantalla la ruta (para ver si está cogiendo bien lo que quiero y después poder subirlo a Mysql)
Pero tal y como comenté, necesito copiar videos, y mientras que sin $ruta = $_SERVER['$nombreFichero']; siq m lo hacía...ahora ho me lo permite...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

move_uploaded_filed() vs. copy()

Publicado por xve (6935 intervenciones) el 29/05/2014 21:21:53
Hola Elisa, creo que lo tienes mal...intento explicarme...

En el origen, no hace falta especificar la ruta... simplemente con el tmp_name ya trae la ruta del archivo.

Lo que no me queda claro es que se pueda copiar a una carpeta que este fuera del path de la web.... prueba así:
1
copy($_FILES['cliente']['tmp_name'], "C:/imagen/".$_FILES['cliente']['name']);

No he programado nunca PHP sobre Windows, por lo que no se si van así las barras o al revés...

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

move_uploaded_filed() vs. copy()

Publicado por Elisa (71 intervenciones) el 30/05/2014 09:17:11
Perfecto! Al código que puse, simplemente le he añadido tu línea y ya puedo subir videos al servidor y la ruta correspondiente a mysql sin que me de problemas el límite! =)

Lo de saber la ruta de origen es algo que quiero conseguir para almacenarlo en mi BBDD de tal forma que los pc´s que voy a conectar por ssh a esa BBDD puedan crear una carpeta en dicho origen. Asiq pretendo q ese path sea un campo dentro de mi tabla. Sería posible conseguirlo con la línea de código que me sugeriste??-->($_SERVER['DOCUMENT_ROOT'])
Se que por motivos de seguridad, con un echo no me lo imprime pero con que se vea en la BBDD me sirve.

Mil gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar