Hallo allemaal,

Ik heb een 3 php's gemaakt waar ik de pdf in beeld wil brengen. Het tonen van de tabel gaat. Echter mijn pdf's worden niet getoond (daar ging het om!)

Code connection.php


<?php

$conn = mysqli_connect("localhost", "root", "usbw", "upload");


?>


index,php


<?php

require 'connection.php';
if(isset($_POST["submit"]))
{
    $name = $_POST["name"];
    if(isset($_POST["submit"]))
        $name = $_POST["name"];
        if($_FILES["image"]["error"] === 4)
        {
            echo
            "<srcipt> alert('Image Does Not Exist'); </script>";
            ;
        }
        else
        {
            $fileName = $_FILES["image"]["name"];
            $fileSize = $_FILES["image"]["size"];
            $tmpName = $_FILES["image"]["tmp_name"];

            $validImageExtension = ['jpg','jpeg', 'png', 'pdf'];
            $imageExtension = explode('.', $fileName);
            $imageExtension = strtolower(end($imageExtension));
            if(!in_array($imageExtension, $validImageExtension))
            {
                //print_r($imageExtension);
                //print_r($validImageExtension);

                echo "<srcipt> alert('Invalid Image Extension'); </script>";
            }
            else if($fileSize > 10000000)
            {
                echo "<srcipt> alert('Image Size is too large'); </script>";
            }
                else
                {
                $newImageName = uniqid();
                $newImageName .= '.'. $imageExtension;
                }

        move_uploaded_file($tmpName, $newImageName);
        $query = "INSERT INTO tb_upload VALUES ('','$name', '$newImageName')";
        mysqli_query($conn, $query);
        echo
        "<srcipt> alert('Succesfully Added'); document.location.href = 'data.php';
        </script>";

        }
 
    }


?>


<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Upload Image File</title>
        <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
    </head>

    <body>
        <form class = "" action = ""method ="post" autocomplete = "off" enctype ="multipart/form-data">
            <label for = "name">Name: </label>
            <input type = text name = "name" id = "name" required value = ""> <br>
            <label for = "image">Image: </label>
            <input type = "file" name = "image" id = "image" accept = ".jpg, .jpeg, .png, .pdf" value =""><br><br>
            <button type = "submit" name = "submit">Submit</button>
        </fom>
        <br>
        <a href = "data.php">Data</a>
    </body>
</html>



data.php


<?php require 'connection.php'; ?>

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Data</title>
        <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
    </head>

    <body>

        <table borader = 1 cellspacing = 0 cellpadding = 10>
            <tr>
                <td>#</td>
                <td>Name</td>
                <td>Image</td>
            </tr>
        <?php

        $i = 1;
        $rows = mysqli_query($conn, "SELECT * FROM tb_upload ORDER BY id ASC");
        ?>

        <?php foreach($rows as $row) : ?>
            <tr>
                <td><?php echo $i++ ?></td>
                <td><?php echo $row["name"]?></td>
                <td><img src ="<?php echo $row['image']; ?>" alt=""></td>
            </tr>
        <?php endforeach; ?>

    </table>

    <a href = "index.php">Index</a>
    </body>
</html>



Wie weet wat ik fout doe?
Hallo waar ik wel achter ben is dat het $newImageName wel aangemaakt wordt maar nergens wordt opgeslagen. Komt daardoor ook niet in beeld. Ik kan ze op mijn harde schijf ook nergens vinden. Alleen een verwijzing in de database!
Als je geen padnaam gebruikt tijdens het bewaren, verdwijnt het bestand naar nergens.

Wil je het bestand in dezelfde directory bewaren als het php bestand, doe dan dit :

 move_uploaded_file($_FILES['uploaded_file']['tmp_name'], getcwd(). '/' . $_FILES['uploaded_file']['name']);


En misschien ongebruikelijk, kan je een pdf bestand tonen met een <img>.
Nooit geweten dat een pdf ook in een img-tag werkt.
het lijkt me ongewenst, als je dit doet met een goed gevulde zware PDF's met high DPI afbeeldingen.
Zo trek je in no-time even iemand internetbundel leeg.
Dit komt er uit Arien:

C:/USB WebServer/root

Als ik daar in kijk staan daar geen foto's of was dat niet je bedoeling?

[size=xsmall]Toevoeging op 23/05/2022 14:21:55:[/size]

Als ik de regel van Appoptive er tussen zet dan krijg ik de volgende foutmelding:

Notice: Undefined index: uploaded_file in C:\USB WebServer\root\Website\Fontys\HDM\Bedrijfskunde\Groepsdynamica\index.php on line 44

Notice: Undefined index: uploaded_file in C:\USB WebServer\root\Website\Fontys\HDM\Bedrijfskunde\Groepsdynamica\index.php on line 44

Pas dit eens aan:

 move_uploaded_file($_FILES['uploaded_file']['tmp_name'], getcwd(). '/' . $_FILES['uploaded_file']['name']); 


naar dit:

if (move_uploaded_file($_FILES['uploaded_file']['tmp_name'], getcwd(). '/' . $_FILES['uploaded_file']['name'])) {
    echo "The file ". htmlspecialchars( basename( $_FILES["uploaded_file"]["name"])). " has been uploaded.";
  } else {
    echo "Sorry, there was an error uploading your file: ".$_FILES['uploaded_file']['error'];
  }


Foutafhandeling wil je immers ALTIJD hebben.
Let ook op de name van je upload-element van je formulier.
Hallo,

Dan komt met de volgende foutmelding.

Notice: Undefined index: uploaded_file in C:\USB WebServer\root\Website\Fontys\HDM\Bedrijfskunde\Groepsdynamica\index.php on line 44

Notice: Undefined index: uploaded_file in C:\USB WebServer\root\Website\Fontys\HDM\Bedrijfskunde\Groepsdynamica\index.php on line 44

Notice: Undefined index: uploaded_file in C:\USB WebServer\root\Website\Fontys\HDM\Bedrijfskunde\Groepsdynamica\index.php on line 50
Sorry, there was an error uploading your file:

uploded_file kent ie niet?

Undefined index

Heb je al gekeken naar hoe je upload-element in je HTML heet? ;-)
Als ie uploaded_file niet kent, gebruik dan de naam van je eigen file input : image
DE code tot nog toe:

index.php

<?php

require 'connection.php';
if(isset($_POST["submit"]))
{
    $name = $_POST["name"];
    if(isset($_POST["submit"]))
        $name = $_POST["name"];
        if($_FILES["image"]["error"] === 4)
        {
            echo
            "<srcipt> alert('Image Does Not Exist'); </script>";
            ;
        }
        else
        {
            $fileName = $_FILES["image"]["name"];
            //echo $fileName;
            $fileSize = $_FILES["image"]["size"];
            $tmpName = $_FILES["image"]["tmp_name"];
            //echo $tmpName;

            $validImageExtension = ['jpg','jpeg', 'png', 'pdf'];
            $imageExtension = explode('.', $fileName);
            $imageExtension = strtolower(end($imageExtension));
            if(!in_array($imageExtension, $validImageExtension))
            {
                //print_r($imageExtension);
                //print_r($validImageExtension);

                echo "<srcipt> alert('Invalid Image Extension'); </script>";
            }
            else if($fileSize > 10000000)
            {
                echo "<srcipt> alert('Image Size is too large'); </script>";
            }
                else
                {
                $newImageName = uniqid();
                //echo  $newImageName;
                $newImageName .= '.'. $imageExtension;
                }

       if (move_uploaded_file($_FILES['uploaded_file']['tmp_name'], getcwd(). '/' . $_FILES['uploaded_file']['name']))
       {
        echo "The file ". htmlspecialchars( basename( $_FILES["uploaded_file"]["name"])). " has been uploaded.";
       }
        else
        {
        echo "Sorry, there was an error uploading your file: ".$_FILES['uploaded_file']['error'];
        }
        $query = "INSERT INTO tb_upload VALUES ('','$name', '$newImageName')";
       // echo $query;
        mysqli_query($conn, $query);
        
        "<srcipt> alert('Succesfully Added'); document.location.href = 'data.php';
        </script>";

        }
 
    }


?>


<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Upload Image File</title>
        <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
    </head>

    <body>
        <form class = "" action = ""method ="post" autocomplete = "off" enctype ="multipart/form-data">
            <label for = "name">Name: </label>
            <input type = text name = "name" id = "name" required value = ""> <br>
            <label for = "image">Image: </label>
            <input type = "file" name = "image" id = "image" accept = ".jpg, .jpeg, .png, .pdf" value =""><br><br>
            <button type = "submit" name = "submit">Submit</button>
        </form>
        <br>
        <a href = "data.php">Data</a>
    </body>
</html>



data.php

<?php require 'connection.php'; ?>

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Data</title>
        <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
    </head>

    <body>

        <table borader = 1 cellspacing = 0 cellpadding = 10>
            <tr>
                <td>#</td>
                <td>Name</td>
                <td>Image</td>
            </tr>
        <?php

        $i = 1;
        $rows = mysqli_query($conn, "SELECT * FROM tb_upload ORDER BY id ASC");

        //print_r($rows);
        //$test = mysqli_fetch_assoc($rows);
        //print_r($test);
        ?>

        <?php foreach($rows as $row) : ?>
            <tr>
                <td><?php echo $i++ ?></td>
                <td><?php echo $row["name"]?></td>
                <td><img src ="<?php echo $row["uploaded_file"]; ?>" alt=""></td>
            </tr>
        <?php endforeach; ?>

    </table>

    <a href = "index.php">Index</a>
    </body>
</html>




@ Arien: Het gaat toch al in de index.php mis?

Reageren