16. Càrrega i detecció de fitxers

Índex

 

Copiar en el servidor un document extern

La càrrega d'un document en el servidor des de l'ordinador de l'administrador o des del d'un usuari autoritzat comporta dues operacions successives: la tramesa del fitxer a un directori temporal i la ubicació d'aquest en un lloc definitiu.

És imprescindible que el directori de destí tingui permisos d'escriptura.

La tramesa es duu a terme des d'un formulari dotat d'<input type="submit" name="nom ... ">

A continuació s'hi aplica la funció move_uploaded_file(), inclosa en un segon document. Cal especificar els arguments com consta a continuació:

on

En cas de dubte, es pot fer servir la funció getcwd(), que retorna l'adreça del directori des d'on s'actua.

Si volem mantenir el nom original del fitxer, podem expressar-lo mitjançant $_FILES["identificador"]["name"].

$_FILES es forma automàticament, i conté les dades següents: ["name"] (nom original del fitxer), ["type"] (tipus del fitxer), ["size"] (mida), ["tmp_name"] (nom del fitxer dins la carpeta temporal) i ["error"] (notificació en el cas d'un eventual error)

Si el fitxer ja existia, el nou eliminarà l'antic.




Vegeu-ne el resultat (1: Incorporació del fitxer).
Vegeu-ne el resultat (2: Accés al document amb la imatge incorporada).


 

Detecció de tots els documents d'un directori

En un web molt dinàmic, el nombre de fitxers continguts en un directori canvia constantment. No és pas qüestió de canviar els programes cada vegada que hi ha un canvi qualsevol. Amb la funció scandir detectem tot el contingut d'un directori (incloses les referències relatives '.' i '..'), que és abocat en un vector:

Podem individualitzar cada un dels elements del vector amb la funció foreach().



Vegeu-ne el resultat

La funció scandir() només és disponible en PHP 5. En les versions anteriors calia recórrer a una fórmula més complexa: