Je veux télécharger temporairement le fichier sur le serveur, puis lire le contenu de ce fichier et insérer le contenu dans la base de données. Mais lorsque je lance le code HTML et télécharge un fichier, il affiche une erreur 404 non trouvée et rien n'est téléchargé. Je ne trouve pas où est l'erreur. Voici le code html

<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>

<body>

<form method="POST" action="upload.php" enctype="multipart/form-data">

    <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
    <br>File to upload:
    <br>
    <input type="file" id="userfile" name="userfile" size="40">
    <p>
        <input id="upload" type="submit" name="upload" value="upload">
</form>
</body>
</html>

Et voici upload.php

<?php
require_once('DBconnection.php');


ini_set('display_errors', 1);
ini_set('log_errors', 1);

if ($db -> connect_error){
    die("connection failed ".$db->connect_error);
}
else{
    echo "connection successful";
}

if(isset($_FILES['upload'])) {
    if ($_FILES['upload']['error'] == 0) {

        $fileName = $db->real_escape_string($_FILES['userfile']['name']);
        $tmpName = $db->real_escape_string($_FILES['userfile']['tmp_name']);
        $fileSize = intval($_FILES['userfile']['size']);
        $fileType = $db->real_escape_string($_FILES['userfile']['type']);

        $fp = fopen($tmpName, 'r');
        $content = fread($fp, filesize($tmpName));
        $content = addslashes($content);
        fclose($fp);

        if (!get_magic_quotes_gpc()) {
            $fileName = addslashes($fileName);
        }


        echo $fileSize;

        $ins_query = "INSERT INTO upload (filename, filesize, filetype, content ) " .
            "VALUES ('$fileName', '$fileSize', '$fileType', '$content')";
        $que = $db->query($ins_query);

        if ($que == true)
            echo "<br>File $fileName uploaded<br>";
        else
            echo "Error: " . $ins_query . "<br>" . mysqli_error($db);
    }
    else {
        echo 'Error! A file was not sent!';
    }
}

?>
0
Israt 10 août 2017 à 18:20

2 réponses

Meilleure réponse

Le problème était qu'il n'obtenait pas l'emplacement exact du répertoire que j'ai résolu en ajoutant ce $ targetfolder = getcwd (). "/ testupload /"; et aussi je ne recevais pas correctement les valeurs transmises en PHP depuis HTML. Donc, après avoir résolu ces problèmes, mon problème est résolu.

0
Israt 13 déc. 2017 à 03:58

L'erreur 404 est une erreur http il n'y a aucun moyen que le code dans upload.php puisse vous montrer ce type d'erreur avec le code que vous avez, vérifiez si lorsque vous cliquez sur le bouton de téléchargement vous atteignez l'url exacte de votre fichier upload.php ( peut-être que le html et le php ne sont pas dans le même répertoire).

Avec le code que vous avez au cas où le fichier ne télécharge pas, le résultat de votre script php sera "connexion réussie" et rien d'autre, peut-être que votre erreur est due au fait que le fichier DBconnection.php n'est pas dans le même répertoire de upload.php .

0
Daniel Forero 10 août 2017 à 15:30