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é
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) :
Ce même code appelle upload.php qui est censé faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
- 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é
Enfin le code pour la création de la base de données :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); ?>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager