Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/05/2011, 17h32   #1
Futur Membre du Club
 
Inscription : novembre 2006
Messages : 128
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : novembre 2006
Messages : 128
Points : 16
Points : 16
Par défaut 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é

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
olivier1209 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2011, 00h45   #2
Membre expérimenté
 
Avatar de amoiraud
 
Homme Adrien
Développeur Web
Inscription : octobre 2006
Messages : 405
Détails du profil
Informations personnelles :
Nom : Homme Adrien
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2006
Messages : 405
Points : 531
Points : 531
Envoyer un message via MSN à amoiraud
Si ta table s'appelle upload, pourquoi essaye tu d'insérer les données dans la table UploadedFiles
amoiraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2011, 09h44   #3
Futur Membre du Club
 
Inscription : novembre 2006
Messages : 128
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : novembre 2006
Messages : 128
Points : 16
Points : 16
Citation:
Envoyé par amoiraud Voir le message
Si ta table s'appelle upload, pourquoi essaye tu d'insérer les données dans la table UploadedFiles
Petit problème lors de mon copier/coller de code
Il faut juste changer le bon nom lors de la création de la table
olivier1209 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 10h33   #4
Membre expérimenté
 
Avatar de amoiraud
 
Homme Adrien
Développeur Web
Inscription : octobre 2006
Messages : 405
Détails du profil
Informations personnelles :
Nom : Homme Adrien
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2006
Messages : 405
Points : 531
Points : 531
Envoyer un message via MSN à amoiraud
OK, dans ce cas remplace ton mysql_query par celui la et dit nous si tu à une erreur SQL :

Code :
1
2
 
mysql_query($sql) or die('Erreur SQL !<br>' . $sql . '<br>' . mysql_error());
Pourrait tu également nous montrer le code qui instancie les variables que tu essaye d'insérer dans la requête ?
amoiraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 14h19   #5
Membre régulier
 
Homme
Développeur Web
Inscription : octobre 2009
Messages : 72
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Vietnam

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2009
Messages : 72
Points : 99
Points : 99
Citation:
Envoyé par olivier1209 Voir le message
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é
Pourquoi ne pas faire une arbo de ce type :
upload/ID_USER/date/nom_fichier.jpeg

ou ID_USER est un id unique contenu dans une table USER ?
matlow est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h01.


 
 
 
 
Partenaires

Hébergement Web