Bonjour à tous,

Je vous demande de l'aide car je suis bloqué lorsque j'essaie d'insérer des fichiers dans ma base de données.

Mon but est d'insérer un fichier de type ou PDF (ou n'importe quel autre type) dans une base de données puis d'être en mesure de le télécharger ou de le lire sur mon navigateur en PHP.

J'ai réussi à insérer quelque chose dans ma bdd, néanmoins quand je télécharge je me suis aperçu que le fichier était "corrompu", adobe ne veut pas l'ouvrir !

En allant voir dans ma base de données j'ai vu que colonne data comportait la mention "blob-0o".

C'est donc que je me suis demandé si vous pouviez m'aider à vérifier le code suivant :

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
<?php
 
	$reference = "test";
 
	$user  = "root";
	$host = "localhost";
	$password="";
	$database="bdd";
 
	$connexion = mysql_connect($host,$user) or die ("Connexion au serveur impossible");
 
	$db = mysql_select_db ($database) or die ("Sélection de la base de données impossible");
 
 
 
    // Check if a file has been uploaded
    if(isset($_FILES['uploaded_file'])) {
        // Make sure the file was sent without errors
        if($_FILES['uploaded_file']['error'] == 0) {
            // Connect to the database
            $dbLink = new mysqli('127.0.0.1', 'root', '', 'bdd');
            if(mysqli_connect_errno()) {
                die("MySQL connection failed: ". mysqli_connect_error());
            }
 
            // Gather all required data
            $name = $dbLink->real_escape_string($_FILES['uploaded_file']['name']);
            $mime = $dbLink->real_escape_string($_FILES['uploaded_file']['type']);
            $data = $dbLink->real_escape_string(file_get_contents($_FILES  ['uploaded_file']['tmp_name']));
            $size = intval($_FILES['uploaded_file']['size']);
 
            // Create the SQL query
 
 
				$query="UPDATE file SET name='$name', mime='$mime', size='$size' WHERE reference='$reference'";  
 
            // Execute the query
            $result = $dbLink->query($query);
 
            // Check if it was successfull
            if($result) {
                echo 'Success! Your file was successfully added!';
            }
            else {
                echo 'Error! Failed to insert the file'
                   . "<pre>{$dbLink->error}</pre>";
            }
        }
        else {
            echo 'An error accured while the file was being uploaded. '
               . 'Error code: '. intval($_FILES['uploaded_file']['error']);
        }
 
        // Close the mysql connection
        $dbLink->close();
    }
    else {
        echo 'Error! A file was not sent!';
    }
 
    // Echo a link back to the main page
    echo '<p>Click <a href="index.html">here</a> to go back</p>';
    ?>

J'ai récupéré ce code sur un autre forum, ça semble marcher à première vue mais apparemment ça n'insère pas tout le contenu dans la base de données.