Bonjour, je suis en train de tester un formulaire d'upload d'image et j'ai utilisé un code pour éviter de recevoir plusieurs fois le même fichier quand l'utilisateur rafraichi le formulaire. Mais du coup le fichier ne s'envoie pas et je recois le message d'erreur suivant "Une erreur est survenue lors de l'envoie du fichier'.

J'ai besoin d'un coup de pouce

Voici le code du formulaire de l'upload (traitement sur la même page) :

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
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
    session_start();
    // { Début - Première partie
    if(!empty($_POST) OR !empty($_FILES))
    {
        $_SESSION['sauvegarde'] = $_POST ;
        $_SESSION['sauvegardeFILES'] = $_FILES ;
 
        $fichierActuel = $_SERVER['PHP_SELF'] ;
        if(!empty($_SERVER['QUERY_STRING']))
        {
            $fichierActuel .= '?' . $_SERVER['REQUEST_URI'] ;
        }
 
        header('Location: ' . $fichierActuel);
        exit;
    }
 
    // { Début - Seconde partie
    if(isset($_SESSION['sauvegarde']))
    {
        $_POST = $_SESSION['sauvegarde'] ;
        $_FILES = $_SESSION['sauvegardeFILES'] ;
 
        unset($_SESSION['sauvegarde'], $_SESSION['sauvegardeFILES']);
    }
    // } Fin - Seconde partie
 
?>
 
<?php
    require 'connexion_bdd.php';
    $message = '';
    if(!empty($_FILES)){
        $file_name = $_FILES['photo']['name'];
        $file_extension = strrchr($file_name, ".");
        $extension_autorisees = array('.jpg', '.jpeg', '.png','.JPG', '.JPEG', '.PNG');
        $file_tmp_name = $_FILES['photo']['tmp_name'];
        $file_dest = '5images/' . date("G-i-s").$file_name;
 
 
        if(in_array($file_extension, $extension_autorisees)){
            if($_FILES['photo']['error'] == 0)
                if ($_FILES['photo']['size'] <= 1000000){
                    if(move_uploaded_file($file_tmp_name, $file_dest)){
                        $req = $bdd->prepare('INSERT INTO formulaire (titre, photo) VALUES(?, ?)');
                        $req->execute(array($_POST['titre'], $file_dest));
                        $bdd = NULL;
 
                        $message = 'Votre photo a été enregistrée !';
                    }
                    else {
                        $message = 'Une erreur est survenue lors de l\'envoie du fichier';
                    }
                }
                else {
                    $message = 'La taille du fichier dépasse la limite autorisée';
                }
            else {
                $message = 'Votre fichier comporte une erreur';
            }
        }
        else {
            $message = 'Seuls les fichiers jpg/jpeg/png sont autorisés';
        }
    }
?>
 
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
    </head>
 
    <body>
        <form method="POST" enctype="multipart/form-data">
            Titre :<input type="text" name="titre"/><br /><br />
 
            <p><?php if(!empty($message)){echo $message;} ?></p>
            <input type="file" name="photo" /><br /><br />
 
            <input type="submit" name="envoyer" value="Envoyer">
        </form>
    </body>
</html>