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)
Version imprimable
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:
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 .pngCode:
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.phpCode: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:$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:
1
2 $dossier1 = $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . image . DIRECTORY_SEPARATOR
ma connexion c'est :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 <?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:
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:$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 faireCode:
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 :D, 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
@+