cela me donne les noms des fichiers, juste avant les noms, j'ai l'indication que c'est une chaîne de caractère : string(nb_de_caractère)
cela me donne les noms des fichiers, juste avant les noms, j'ai l'indication que c'est une chaîne de caractère : string(nb_de_caractère)
Par exemple tu obtiens quoi ?
Et que vaut $extension1 ensuite ?
string(9) "bilan.JPG"
extension1 vaut :
string(4) ".JPG"
Ton code n'est pas prévu pour des extensions en majuscules.
Au passage "pathinfo" est plus efficace que strrchr pour trouver une extension.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $extensions1 = array('.png', '.gif', '.jpg', '.jpeg'); $path_info = pathinfo($_FILES['image']['name']); $extension1 = strtolower($path_info['extension']);
merci mais
Ne fonctionne pas, du coup j'ai essayé d'enregistrer une autre image .png
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $path_info = pathinfo($_FILES['image']['name']);
J'ai les erreurs qui s'affichent pour:
Warning: move_uploaded_file(/image/img1.jpg): failed to open stream: No such file or directory in D:\test\enr_fic1.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (move_uploaded_file($_FILES['image']['tmp_name'], $dossier1 . $fichier1))
Warning: move_uploaded_file(): Unable to move 'C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\binaries\tmp\php2286.tmp' to '/image/img.jpg' in D:\test\enr_fic1.php on line 54
Pourtant tout est créé
J'ai re testé le pathinfo, je n'ai pas d'erreur, mais ça ne s'enregistre toujours pas, ni dans les dossiers, ni dans phpmyadmin
Pour le move_uploaded_file, ton chemin '/image/' n'est pas un chemin windows.
Tu peux faire :
Pour l'insertion qui n'a pas lieu, après toutes les étapes de debugage qu'on a fait ensemble, tu devrais savoir un peu maintenant nous dire a quel endroit ça bloque.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $dossier1 = $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'image' . DIRECTORY_SEPARATOR
Bonjour,
Merci beaucoup
Toujours pas d'erreur, sauf pour
alors j'ai testé un autre tuto, où j'ai testé seulement pour "pdf", j'arrive à enregistrer les fichiers dans le dossier, mais toujours pas dans PhpMyAdmin....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $dossier1 = $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . image . DIRECTORY_SEPARATOR
ma connexion c'est :
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 <?php require_once 'cnxBDD.php'; if(isset($_POST['submit'])) { $file = rand(1000,100000)."-".$_FILES['pdf']['name']; $file_loc = $_FILES['pdf']['tmp_name']; $file_size = $_FILES['pdf']['size']; $file_type = $_FILES['pdf']['type']; $folder="pdf/"; $new_size = $file_size/1024; $new_file_name = strtolower($file); $final_file=str_replace(' ','-',$new_file_name); if(move_uploaded_file($file_loc,$folder.$final_file)) { $sql="INSERT INTO fichiers(pdf,type_pdf,size_pdf) VALUES('$final_file','$file_type','$file_size')"; try { $req = $bdd -> prepare($sql); $req -> execute(array($final_file,$file_type,$file_size)); var_dump($req); $req -> closeCursor(); } catch(Exception $e) { echo '<pre><br>Erreur dans la requete <br/>' . $e -> getMessage() . '<br/>'; } ?> <script> alert('Téléchargement avec succès'); window.location.href = 'formulaire.php?success'; </script> <?php } else { ?> <script> alert('ATTENTION ERREUR ! Votre téléchargement a échoué'); window.location.href = 'formulaire.php?fail'; </script> <?php } } ?>
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 <?php error_reporting(E_ALL); $hote = 'localhost'; $utilisateur = 'root'; $mdp = ''; $nbdd = 'interface'; try{ $bdd = new PDO("mysql:host=$hote;dbname=$nbdd", $utilisateur, $mdp); } catch( PDOException $Exception ) { echo "Erreur !<br>"; echo $Exception->getMessage(); echo $Exception->getCode(); exit(); } ?>
Je te l'ai dit plusieurs fois : il faut activer les erreurs PDO quand tu developpes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Oui désolée j'avais oublié de le remettre :/
J'ai un problème au niveau de ma clé étrangère, pour expliquer j'ai mon formulaire, qui a un id, où cet id est une clé étrangère pour la table des fichiers à télécharger, parce qu'à la base je voulais mettre le formulaire et les fichiers à télécharger sur la même table mais je n'y suis pas arrivée.
dans la table fichiers :
id_fichier (clé primaire AI)
id_formulaire (clé étrangère)
pdf VARCHAR
type_pdf VARCHAR
size_pdf INT
image VARCHAR
type_image VARCHAR
size_image INT
editer_fichier VARCHAR
type_editer VARCHAR
size_editer INT
Du coup, je pense que mon erreur vient du INSERT INTO, je sais qu'il faut que je fasse un truc du genre :
Il manque la déclaration de la variable id_formulaire pour PHP et je ne vois pas comment l'expliquer,et, ce n'est pas pareil sur PHP, il faut faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 INSERT INTO fichiers VALUES ('', id_formulaire, pdf, type_pdf,size_pdf,image,type_image,size_image,editer_fichier,type_editer,size_editer) FROM fichiers, formulaire WHERE fichiers.id_formulaire= formulaire.id_formulaire"
"INSERT INTO table( ....)
VALUES ($...)";
J'ai testé sans la clé étrangère, cela fonctionne, merci beaucoup pour toutes les aides !
Par contre je ne sais pas comment faire avec la clé étrangère, puis-je avoir un petit coup de pouce, s'il te plaît ?
D'avance merci
@+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager