Pdf in beeld brengen
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
index,php
Code (php)
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
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
<?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>
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
Code (php)
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
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
<?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>
<!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?
Verder moet je ook fetchen. Een query bevat geen data.
Het plaatje
https://ibb.co/txHCKgS
Hier dus mee?
mysqli_fetch_assoc(mysqli_result $result): array|null|false
(Blijft mijn favo functie, niet dus)
Check anders de SQL-Boilerplate.
https://github.com/arienclaij/sql-boilerplate
Is wel under construction. Maar wel effectief om de juiste opbouw te kunnen gebruiken.
Gewijzigd op 22/05/2022 21:35:34 door - Ariën -
Staat het bestand wel op de plek waar je denkt dat het staat?
Volgens mij wel daar wordt wel een bestand in pdf-formaat neer gezet.
De data laat ie wel zien het plaatje niet!
Niet “volgens mij”
Je weet het of je weet het niet.
Kijk!
Of typ de url naar dat bestand in de browser.
Als je geen plaatje ziet, check eens de URL/het pad in je HTML source.
Een database is wel leuk om te tonen, maar je hebt er niks aan als je code behoorlijk fout is.
Verder is een pdf geen afbeelding. Een pdf kan je nooit in een <img> bekijken.
Gewijzigd op 22/05/2022 22:09:51 door - Ariën -
De plaatjes staan er.
Ed Jeurissen op 22/05/2022 22:10:56:
De plaatjes staan er.
Lees de gegeven reacties. Probeer ook graag zo uitgebreid mogelijk te reageren.
Enkel met simpele reacties zoals: "Dit is de code", "De plaatjes staan er" kunnen we weinig.
Graan zien we een constructieve discussie in plaats dat we steeds alles moeten vragen. En zorg erook voor dat je zeker weet wat er gebeurt. Reacties als 'volgens mij', daar hebben we ook weinig aan.
Probeer ook bij een bericht aan de drie W's te denken:
Wat heb je aan code?
Wat doe je precies?
Wat gebeurt er precies?
Als je dit kan beantwoorden dan kan jij en kunnen ook wij beter inschatten wat er aan de hand is.
Enkel een lap code geven, en zeggen enkel dat het niet werkt, dat werkt best frustrerend voor iedereen die wilt helpen.
Ik heb dat we hiermee dit topic op een betere manier kunnen voortzetten.
Gewijzigd op 22/05/2022 22:23:43 door - Ariën -
Ik dat van de pdf een screenshot gemaakt en als .png opgeslagen op de plaats van de bestanden neergezet. Daar wordt ook de verwijzing neergezet. Dat is het probleem niet. Wat wel? (test.png > 628a99e4d7216.png)
-> Check je HTML-source in je browser. En eventueel je Developers-tabblad om te kijken welke URL er opgeroepen wordt.
De items worden helemaal niet opgehaald? En er is geen herhalende <tr> in de table in je HTML-source.
-> Voeg een mysqli_fetch_assoc(....) toe.
Verder: Voeg goede foutafhandeling toe, check de genoemde SQL-Boilerplate voor de juiste structuur. Dat scheelt een hoop ellende en zoekwerk, omdat je dan al een hoop controles hebt die dan wel of niet gepasseerd worden.
Gewoon doen dus!
Gewijzigd op 22/05/2022 22:41:21 door - Ariën -
Code (php)
levert een output die naar je browser gestuurd wordt.
In de bron van de html-pagina levert dat iets op.
Wat staat daar?
En ook: wat staat daar niet wat je wel verwacht had?
(en ik vraag me ook af of die spatie achter scr daar wel mag staan.)
- Ariën - op 22/05/2022 22:38:44:
Wat is nu het probleem? Je ziet geen afbeelding terwijl die wel zou moeten bestaan?
Ja ik een plaatje zien dat er nu niet staat/ cq niet te zien is.
Stukje van de ontwikkelaarsoutput
Code (php)
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
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
<!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>
mysqli_result Object
(
[current_field] => 0
[field_count] => 3
[lengths] =>
[num_rows] => 15
[type] => 0
)
<tr>
<td>1</td>
<td>blad 1</td>
<td><img src ="628a76cbc4816.pdfArray
(
[id] => 1
[name] => blad 1
[image] => 628a76cbc4816.pdf
)
" alt=""></td>
</tr>
<tr>
<td>2</td>
<td>Blad 2</td>
<td><img src ="628a7c6aa51f6.pdfArray
(
[id] => 10
[name] => Blad 2
[image] => 628a7c6aa51f6.pdf
)
" alt=""></td>
</tr>
<tr>
<td>3</td>
<td>Blad 1</td>
<td><img src ="628a7f0c03b6e.pngArray
<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>
mysqli_result Object
(
[current_field] => 0
[field_count] => 3
[lengths] =>
[num_rows] => 15
[type] => 0
)
<tr>
<td>1</td>
<td>blad 1</td>
<td><img src ="628a76cbc4816.pdfArray
(
[id] => 1
[name] => blad 1
[image] => 628a76cbc4816.pdf
)
" alt=""></td>
</tr>
<tr>
<td>2</td>
<td>Blad 2</td>
<td><img src ="628a7c6aa51f6.pdfArray
(
[id] => 10
[name] => Blad 2
[image] => 628a7c6aa51f6.pdf
)
" alt=""></td>
</tr>
<tr>
<td>3</td>
<td>Blad 1</td>
<td><img src ="628a7f0c03b6e.pngArray
Quote:
-> Check je HTML-source in je browser. En eventueel je Developers-tabblad om te kijken welke URL er opgeroepen wordt. Gedaan! zie boven
De items worden helemaal niet opgehaald? En er is geen herhalende <tr> in de table in je HTML-source.
-> Voeg een mysqli_fetch_assoc(....) toe.
Verder: Voeg goede foutafhandeling toe, check de genoemde SQL-Boilerplate voor de juiste structuur. Dat scheelt een hoop ellende en zoekwerk, omdat je dan al een hoop controles hebt die dan wel of niet gepasseerd worden.
Gewoon doen dus!
De items worden helemaal niet opgehaald? En er is geen herhalende <tr> in de table in je HTML-source.
-> Voeg een mysqli_fetch_assoc(....) toe.
Verder: Voeg goede foutafhandeling toe, check de genoemde SQL-Boilerplate voor de juiste structuur. Dat scheelt een hoop ellende en zoekwerk, omdat je dan al een hoop controles hebt die dan wel of niet gepasseerd worden.
Gewoon doen dus!
Edit:
quote fix
Gewijzigd op 22/05/2022 23:00:22 door - Ariën -
Wat is het probleem dan?
En nogmaals: ''628a76cbc4816.pdf' zal nooit in een <img> tag werken!
Gewijzigd op 22/05/2022 22:59:30 door - Ariën -
De dat wel maar het plaatje niet. VAn de pdf had ik een png gemaakt, maar zonder resultaat. Probleem is dat ik het plaatje niet kan zien!
Je zult dan een extra veld in je database moeten aanmaken, die bijv. thumbnail heet.
Het huidige veld image zou ik dan voor het gemak bron of source noemen.
Gewijzigd op 22/05/2022 23:18:36 door - Ariën -