PHP – Saber carpeta destino
Saber en PHP la carpeta destino donde vamos a trabajar. Parece un poco lioso, pero en el siguiente ejemplo lo entenderéis.
Supongamos que tenemos un fichero .php donde ejecutamos una orden de copiar ficheros de un lado a otro. Pero cuando te ves en la tarea, cómo se donde estoy ejecutando el php, y dónde están las carpetas con las que trabajaremos.
Concretemos más. Hemos recibido en nuestro PHP un fichero por POST. Ahora debemos moverlo a donde nos interesa:
move_uploaded_file($_FILES['file']['tmp_name'], $destino);
La orden es sencilla, pero el destino es difícil en muchas ocasiones. Cada servidor es diferente y es difícil trabajar con enlaces absolutos. Lo mejor es trabajar con enlaces relativos.
Para saber donde exactamente dónde estamos ejecutando nuestro .php, utilizaremos la orden siguiente:
echo getcwd();
Esto nos devuelve en qué carpeta estamos ejecutando el fichero. Ahora que lo sabemos, podemos jugar para montar el destina:
Supongamos que ejecutamos la orden y nos da que estamos en (el fichero .php está aquí):
/app/controllers/
Y que el fichero que recibimos, lo queremos grabar en:
/media/
Pues bien, ya sabemos donde estamos y a donde vamos, por lo que trabajando con enlaces relativos, nuestro destino sería:
../../media
Bajamos dos carpetas /controllers y /app y nos metemos en /media
La orden final nos quedaría algo así:
move_uploaded_file($_FILES['file']['tmp_name'], "../../media");
Esto que parece obvio, no lo es tanto cuando trabajas. en diferentes servidores o debes realizar diferentes tareas con ficheros. Además, deberemos tener en cuenta el tema de los permisos de carpetas…
Espero que os haya sido de utilidad el fichero: PHP – Saber carpeta destino
Más información