Sto brancolando nel buio...
Allora, dopo aver riletto quanto concerne l'upload in php sono arrivato a sperimentare il seguente script e relativo form (copiato da php.net):
codice:
<html>
<head>
<title>Prova!!! Upload, sperem...</title>
</head>
<body>
<form enctype="multipart/form-data" action="" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
<?php
// Nelle versioni di PHP precedenti alla 4.1.0 si deve utilizzare $HTTP_POST_FILES anzichè
// $_FILES.
$uploaddir = '/team_news_attach/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Possibile attacco tramite file upload!\n";
}
echo 'Alcune informazioni di debug:';
print_r($_FILES);
print "</pre>";
?>
</body>
</html>
Il risultato a video è il seguente:
codice:
Possibile attacco tramite file upload!
Alcune informazioni di debug:Array
(
[userfile] => Array
(
[name] => lavori_in_corso_reduced.jpg
[type] => image/jpeg
[tmp_name] => C:\WINDOWS\Temp\php8D.tmp
[error] => 0
[size] => 18821
)
)
Ciò che deduco, ottenendo la location del file temporale e l'errore 0 è che l'upload avviene in modo corretto! Alias, riesco ad uplodare il file sullo spazio riservato del server ai file temporanei, ma non riesco poi a spostarlo nel mio host. Essendo quest'ultimo nella partizione D:\ ed essendo il file temporaneo in una partizione C:\ su php.net ho trovato che in un server windows, lavorando su partizioni diverse si potrebbero ottenere degli errori. Ho cercato di ovviare dando alla cartella di upload la location esatta con $uploaddir = getcwd() . '/team_news_attach/'; al posto di $uploaddir = '/team_news_attach/'; ma sempre senza successo...
Al momento non so veramente che pesci pigliare...