upload fichier + création répertoire + MySQL
Bonjour à tous :)
Je débute en PHP et aimerait faire ceci :
=> Associer un fichier uploadé à un utilisateur (celui qui upload le fichier) , stocké le tout dans une base de données, avec l'adresse email + infos du fichier), et créer un sous dossier nommé avec un ID de fichier unique. Ainsi j'aurai mon arborescence : upload/1 ./2 ./3 ... + une base de données à coté :lol:
J'ai un premier formulaire web qui permet l'upload d'un fichier (relativement simple pour l'instant :p , il manque pour l'instant un champs texte pour l'email utilisateur) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <html>
<body>
<form action="upload.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html> |
Ce même code appelle upload.php qui est censé faire :
- récupérer les infos du fichier (taille, nom, ..) et les afficher
- placer le tout dans une base de données (pour l'email je dois créer un champs texte supplémentaire dans le premier formulaire (index.html) :)
- créer un sous répertoire dans le dossier d'upload : "/upload/$ID", et y copier le fichier uploadé
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| <?php
if ((($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 200000000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
// Parametres mysql
define('DB_SERVER', '127.0.0.1'); // serveur mysql
define('DB_SERVER_USERNAME', 'root'); // nom d'utilisateur
define('DB_SERVER_PASSWORD', 'azerty'); // mot de passe
define('DB_DATABASE', 'upload'); // nom de la base
$msg_erreur = "les informations suivantes manquent :<br/>";
$msg_ok = "Votre demande a bien été prise en compte.";
$message = $msg_erreur;
// Connexion au serveur mysql
$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD)
or die('Impossible de se connecter : ' . mysql_error());
// sélection de la base de données
mysql_select_db(DB_DATABASE, $connect);
// Etablissement de la connexion au serveur MySQL
$connexion = mysql_connect('127.0.0.1', 'root', 'azerty');
$sql = "INSERT INTO UploadedFiles VALUES ('', '$ID', '$name', '$email', '$extension', '$size')";
mysql_query($sql);
mysql_close($connexion);
?> |
Enfin le code pour la création de la base de données :
Code:
1 2 3 4 5 6 7 8
| CREATE TABLE upload (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(30) NOT NULL,
email VARCHAR(30) NOT NULL,
extension VARCHAR(10) NOT NULL,
size INT NOT NULL,
PRIMARY KEY(id)
); |
Voilà j'espère que vous pourrez m'aider à finaliser tout ça :)
Merci beaucoup,
olivier