Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
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 14/06/2007, 17h38   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2006
Messages : 77
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 77
Points : 10
Points : 10
Par défaut rechercher des photos dans un répertoire

Bonjour à tous ,
je suis actuellement en train de créer un site internet, et plus précisement la partie administration du site en php.

je désireré pourvoir rajouter des photos dans la base de donnée du site,
pour ca j'ai créer une zone permettant de rechercher la photo et de parcourir.

lorsque j'appuis sur le bouton ok: j'ai un message que j'ai moi même créer qui me dit:

"Le fichier est introuvable"

le problème serait donc de pouvoir trouver ce fichier qui n'est d'autre que la photo que je veux prendre...

voila donc le codage pour le bouton:

Code HTML :
1
2
3
4
<form method="post" action="photo.php">
   <INPUT TYPE="FILE" NAME="fichier">
   <input type=submit value="ok">
</form>

et pour la partie photo.php:

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
<HTML>
 
<BR>
<BR><H1><FONT COLOR="008B00"> Partie photo </FONT></H1></BR>
 
<?php
 
require ("Connect.php");
 
//connection au serveur:
$cnx = mysql_connect (SERVEUR, NOM, PASSE);
 
//séction de la base de données:
$db  = mysql_select_db(BASE) ;
 
 
//upload de la nouvelle image
   $tmp_file = $_FILES['fichier']['tmp_name'];//nom temporaire du fichier (pendant l'execution du script)
   $destination= 'C:\wamp\www\site\photoRandom'; //le dossier de destination du fichier
 
   if( !is_uploaded_file($tmp_file) )
   {
       echo'<div align=center><i>Le fichier est introuvable</i></div>';
       return; //return() equivalent d'exit mais ne quitte que le script en cour permet donc d'afficher le reste quand le script est un include
   }
   // on vérifie maintenant l'extension
   $type_file = $_FILES['fichier']['type'];//on obtiens le type du fichier
 
   if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'gif')&& !strstr($type_file, 'bmp')  )//on accepte jpg jpeg gif et bmp
   {
       echo'<div align=center><i>Les format accepté sont .JPG .JPEG .GIF .BMP</i></div>';
       return;
   }
      $name_file = $_FILES['fichier']['name'];
    //on copie l'image dans ca bonne destination
 
   if( !move_uploaded_file($tmp_file, $destination . "$name_file") )
   {
       echo'<div align=center><i>la copie du fichier est impossible</i></div>';
       return;
   }
      //mise a jour de la bdd
   $image="$name_file";
 
   //prendre la valeur Max
    $max = "SELECT max(num_photo)
	FROM photorandom";
 
	//exécution de la requête SQL max:
    $requete = mysql_query( $max, $cnx ) ;
 
   //requête ajout
   $sql = "insert into photorandom('$max + 1' ,'$image')";
 
   	//exécution de la requête SQL:
    $requete = mysql_query( $sql, $cnx ) ;
 
   //tu fait une requette pour mettre a jour ta bdd ici
 
 
 
?> 
 
 
 
</HTML>

Merci d'avance
stan30160 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2007, 09h28   #2
Membre éclairé
 
Avatar de TucSale
 
Inscription : novembre 2005
Messages : 265
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : novembre 2005
Messages : 265
Points : 301
Points : 301
Envoyer un message via MSN à TucSale
bonjour,
En regardant rapidement => enctype="multipart/form-data"

Code HTML :
1
2
3
4
<form method="post" action="photo.php" enctype="multipart/form-data"> 
 <INPUT TYPE="FILE" NAME="fichier" /> 
 <input type=submit value="ok" /> 
</form>
TucSale est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2007, 10h56   #3
Candidat au titre de Membre du Club
 
Inscription : mai 2006
Messages : 77
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 77
Points : 10
Points : 10
Par défaut merci

je vais essayer ça.
stan30160 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2007, 13h22   #4
Candidat au titre de Membre du Club
 
Inscription : mai 2006
Messages : 77
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 77
Points : 10
Points : 10
Par défaut re

J'ai donc essayé ce que tu m'as dit et je n'obtiens plus le message d'erreur.


Mais par contre il n'y a aucun transphert de l'image et je n'ai pas d'autres message, j'arrive dans la "partie photo" mais il n'y a rien...

quelqu'un serait où j'ai pu faire une betise sur la parti photo.php
stan30160 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2007, 14h15   #5
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
En vrac :
  • Vous avez certainement une erreur sur votre requête INSERT :
    Code :
    $sql = "insert into photorandom('$max + 1' ,'$image')";
    $max + 1 sera considéré par MySQL comme étant une chaîne donc vous n'obtiendrez probablement pas ce que vous attendiez. Un champ de type auto_increment permettrait de ne pas avoir à se soucier de cette incrémentation qui vous faites ici en deux requêtes (SELECT puis INSERT).
  • Il manque un séparateur de répertoire :
    Code :
    1
    2
    3
    $destination= 'C:\wamp\www\site\photoRandom';
    # ...
    if( !move_uploaded_file($tmp_file, $destination . DIRECTORY_SEPARATOR .  "$name_file") )
    Je vous conseille de filtrer le nom ($_FILES['fichier']['name']) notamment parce que IE vous renvoie, si je ne m'abuse, le chemin complet du fichier chez le client et non simplement son nom.
  • Les interpolations sont inutiles :
    suffit.
  • Faire le test du type de fichier sur les informations fournies par le client est une erreur puisqu'elles peuvent être falsifiées (ne pas utiliser $_FILES['fichier']['type']). Basez-vous sur les extensions du fichier ($_FILES['fichier']['name']) ou faites appel aux fonctions PHP pour récupérer le type MIME côté serveur (fonction mime_content_type ou avec l'extension fileinfo).
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 14h51   #6
Candidat au titre de Membre du Club
 
Inscription : mai 2006
Messages : 77
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 77
Points : 10
Points : 10
Par défaut merci

Merci pour tous les petits conseils en "vrac"

Maintenant ca marche merci !!!
stan30160 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h57.


 
 
 
 
Partenaires

Hébergement Web