Upload di file con inserimento del nome del file in un database mysql
Scritto da Fabio
|
21 Aprile 2009
Realizziamo oggi un piccolo script in php che effettua l'upload di un file su server e successivamente scriva in un database MYSQL il nome del file appena uppato.
Prerequisiti:
PHP 4.x o sup.
MYSQL
Supponiamo per semplicita di lavorare in una directory chiamata "upload".
La prima pagina che realizziamo è quella contenente il form che chiamiamo "select.php".
File: upload/select.php
Show/Hidden code
<form enctype="multipart/form-data" action="upload.php" method="post" name="upload_file">
<input type="hidden" name="MAX_FILE_SIZE" value="5000000">
<input name="userfile" type="file">
<input type="submit" value="upload" name="file_uploaded">
</form>
A questo punto come potete vedere nell'action del form abbiamo bisogno di creare il file "upload.php". Ho commentato abbastanza il codice affinche non necessiti di ulteriori spiegazioni.
File: upload/upload.php
Show/Hidden code
<?php
// uploadfile www.ciotoli.it
if (is_uploaded_file($_FILES['userfile']['tmp_name']))
{
//upload
$file_realname = $_FILES['userfile']['name'];
//Copio il file nella directory
copy($_FILES['userfile']['tmp_name'], "media/$file_realname");
//Collegamento al db per scrittura risultato
mysql_connect("localhost","username","password");
mysql_select_db("dbname");
$inserisci = mysql_query("INSERT INTO foto(nomefile) VALUES('$file_realname')");
//Controllo se l'inserimento è andato a buon fine
if(!$inserisci) {
echo "Il file è stato inviato ma non è stato possibile scrivere sul database";
}
else {
echo "Scrittura su db eseguita correttamente";
}
}
else
{
echo "Errore nell'upload.<BR>File non disponibile o troppo grande";
}
?>
Ricordo che è necessario editare le seguenti righe:
mysql_connect("localhost","username","password");
mysql_select_db("dbname");
e creare nel database una tabella chiamata filename con:
Un campo di tipo INT chiamato Id e con l'opzione AUTOINCREMENT e PRIMARY
Un campo di tipo TEXT chiamato filename
Questo script effettua l'upload in una directory "upload/media" che dovete quindi creare e assegnarle 777 come permessi.
La struttura finale della directory upload sarà la seguente:
upload/index.php
upload/upload.php
upload/media/