Ciao a tutti ..ho un problema..non capisco cosa significa permessi vanno settati a 777?
in che senso?
ho inserito il percorso dove voglio che mi mette l 'immagine...ma mi dice che ha salvato l'immagine ..ma poi nella cartellla non trovo niente..perchè?
<?
// QUESTE RIGHE RENDONO LO SCRIPT COMPATIBILE CON LE VERSIONI
// DI PHP PRECEDENTI ALLA 4.1.0
if(!isset($_FILES)) $_FILES = $HTTP_POST_FILES;
if(!isset($_SERVER)) $_SERVER = $HTTP_SERVER_VARS;
/********************* VARIABILI DA SETTARE ********************/
// Directory dove salvare i files Uploadati ( chmod 777, percorso assoluto)VVoVe:
$upload_dir = $_SERVER["DOCUMENT_ROOT"] . "/upload";
// Eventuale nuovo nome da dare al file uploadato
$new_name = "";
// Se $new_name è vuota, il nome sarà lo stesso del file uploadato
$file_name = ($new_name) ? $new_name : $_FILES["upfile"]["name"];
if(trim($_FILES["upfile"]["name"]) == "") {
die("Non hai indicato il file da uploadare !");
}
if(@is_uploaded_file($_FILES["upfile"]["tmp_name"])) {
@move_uploaded_file($_FILES["upfile"]["tmp_name"], "$upload_dir/$file_name")
or die("Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload.");
} else {
die("Problemi nell'upload del file " . $_FILES["upfile"]["name"]);
}
echo "L'upload del file " . $_FILES["upfile"]["name"] . " è avvenuto correttamente";
?>
Le prime righe, come chiarisce il commento, servono a rendere disponibile la sintassi dei nuovi array introdotti con PHP 4.1.0 anche alle versioni precedenti.
Le due variabili da settare sono rispettivamente:
la directory dove spostare i files uploadati ($upload_dir, da indicare con il percorso assoluto sul server e i cui permessi vanno settati a 777)
l'eventuale nuovo nome da dare al file che viene caricato sul server ($new_name; se non si vuole rinominare il file, questo avrà lo stesso nome che aveva sul computer client.)
A questo punto effettuiamo un controllo per verificare se è stato selezionato un file per l'Upload, e lo facciamo con riferimento alla proprietà "name" del file.
Andata a buon fine questa verifica, possiamo passare al cuore dello script, la parte cioè che "sposta" il file caricato in rete dalla directory temporanea del server (che si può settare in php.ini, nella variabile upload_tmp_dir) alla directory da noi indicata, eventualmente rinominandolo.
Le funzioni usate a questo scopo, sono is_uploaded_file() (PHP 3>= 3.0.17, PHP 4 >= 4.0.3) e move_uploaded_file() (PHP 4 >= 4.0.3, eventualmente si può usare copy() in sostituzione). La prima funzione prende come parametro la variabile che contiene il nome temporaneo del file uploadato sul server ($_FILES["upfile"]["tmp_name"]) e verifica, appunto, se sia stato caricato; la seconda funzione prende due parametri: il primo è il nome temporaneo ed il secondo è il percorso finale (comprensivo del nome, nuovo o meno, del file) dove spostarlo.