Questo è una parte di codice della pagina php di partenza con il form
Codice PHP:
<form name="nuovaCategoria" method = "post" action="adminAction.php" enctype="multipart/form-data">
<table border="0px">
...
<tr>
<td>
Nome pagina:
</td>
<td>
<input type="file" name="page">
</td>
</tr>
...
</table>
<input type="hidden" name="MAX_FILE_SIZE" value="10000">
<input type="submit" value="Inserisci">
</form>
e questa è invece la funzione che viene richiamata per fare l'upload
Codice PHP:
$fileDir = $_SERVER["DOCUMENT_ROOT"];
function uploadFile($dir, $file, $uploadType, $overwrite = "false"){
if(!isset($_FILES)) $_FILES = $HTTP_POST_FILES;
if(!isset($_SERVER)) $_SERVER = $HTTP_SERVER_VARS;
$upload_dir = $GLOBALS['fileDir'] . $dir;
if(!file_exists($upload_dir.$file["name"]) || $overwrite == "true"){
$new_name = "";
$file_name = ($new_name) ? $new_name : $file["name"];
if(trim($file["name"]) == "") {
die("Non hai indicato il file da uploadare !");
}
if(@is_uploaded_file($file["tmp_name"])) {
@move_uploaded_file($file["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 " . $file["name"]);
}
echo "L'upload del file " . $file["name"] . " è avvenuto correttamente";
}else{
header("location: admin.php?upload=".$uploadType);
exit;
}
}
Ho notato però, che se imposto la variabile in questo modo tutto funziona
$fileDir = "/membri/gattile/";
c'è un modo per rendere universale la cosa senza doverla modificare a mano?
ah dimenticavo la variabile $file passata alla funzione è questa $_FILES["page"]