PDA

View Full Version : [php] Script per upload in php?


livnard
30-03-2010, 19:29
sto cercando di creare un form di upload in php usando per il modulo in html in una pagina questo:
http://php.html.it/articoli/leggi/848/up…
e per la pagina in php questo:
http://php.html.it/articoli/leggi/848/up…
ma non va .. mi dice non hai indicato il file da uploadare.. come devo fare?
oppure mi scrivete voi il codice corretto già testato

RagingBull
30-03-2010, 19:45
I link alle pagine sono troncati.

livnard
30-03-2010, 19:50
http://php.html.it/articoli/leggi/848/upload-con-php/2/
http://php.html.it/articoli/leggi/848/upload-con-php/4/

RagingBull
30-03-2010, 20:18
Dunque. I primi due controlli per adattare lo script alle vecchie versioni di PHP non servono: oggi come oggi utilizzano tutti PHP5. Puoi cancellarli.

Venendo all'errore. Non trovando nulla di anomalo ho provato lo script sul mio server locale...e in effetti non presenta problemi.

Prova così. Si tratta di un unico file chiamato upload.php


<?php

if($_SERVER['REQUEST_METHOD']=="POST")
{
/********************* VARIABILI DA SETTARE ********************/
// Directory dove salvare i files Uploadati ( chmod 777, percorso assoluto)
$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";
}
?>

<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="upfile">
<input type="hidden" name="MAX_FILE_SIZE" value="10000">
<input type="submit" value="Invia il file">
</form>

livnard
30-03-2010, 20:30
Venendo all'errore. Non trovando nulla di anomalo ho provato lo script sul mio server locale...e in effetti non presenta problemi.


invece a me dice
Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload.
forse ho sbagliato a settare, per favore puoi spiegarmi meglio come settarlo bene?

RagingBull
30-03-2010, 20:43
non hai creato la cartella oppure non gli hai dato privilegi di scrittura.

Ad ogni modo, ho modificato lo script affichè crei la cartella upload e gli dia privilegi di scrittura.

Ora dovrebbe funzionare. E non c'è nulla da settare: l'unico settaggio era la corretta creazione della cartella upload.

<?php

if($_SERVER['REQUEST_METHOD']=="POST")
{
/********************* VARIABILI DA SETTARE ********************/
// Directory dove salvare i files Uploadati ( chmod 777, percorso assoluto)
$upload_dir = $_SERVER["DOCUMENT_ROOT"] . "/upload";

// Se la directory non esiste la creo e gli do privilegi 777 (massimi)
if(!file_exists($upload_dir))
{
mkdir($upload_dir, 0777);
}

// 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";
}
?>

<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="upfile">
<input type="hidden" name="MAX_FILE_SIZE" value="10000">
<input type="submit" value="Invia il file">
</form>

livnard
30-03-2010, 21:10
mi da sempre lo stesso errore..:mbe:

RagingBull
31-03-2010, 14:20
Crea manualmente la directory upload e dagli privilegi di scrittura per tutti gli utenti. Il setup dei privilegi lo trovi nella scheda avanzate delle proprietà della cartella.