Pdf in beeld brengen
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!
Zorg ook hier voor goede foutafhandeling!
https://www.php.net/manual/en/features.file-upload.errors.php
Wil je het bestand in dezelfde directory bewaren als het php bestand, doe dan dit :
Code (php)
1
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>.
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.
C:/USB WebServer/root
Als ik daar in kijk staan daar geen foto's of was dat niet je bedoeling?
Toevoeging op 23/05/2022 14:21:55:
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
Code (php)
1
move_uploaded_file($_FILES['uploaded_file']['tmp_name'], getcwd(). '/' . $_FILES['uploaded_file']['name']);
naar dit:
Code (php)
1
2
3
4
5
2
3
4
5
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'];
}
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.
Gewijzigd op 23/05/2022 14:25:31 door - Ariën -
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
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
78
79
80
81
82
83
84
85
86
87
88
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
86
87
88
<?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>
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
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
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
<?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>
<!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?
Code (php)
1
<input type = "file" name = "image" id = "image" accept = ".jpg, .jpeg, .png, .pdf" value =""><br><br>
Zie de name 'image', en hier is het $_FILES['uploaded_file']['tmp_name'] 'uploaded_file'.
Even gelijk trekken en klaar.
Nog even een ding: Je hebt nog steeds geen mysqli_fetch_assoc toegepast.
Dus je krijgt nog steeds niet je juiste data in je foreach. Enkel wat interne velden die de eigenschappen van de query beschrijven waar je weinig aan hebt.
Bij mij komt dit uit een print_r() op je mysqli_query:
Quote:
mysqli_result Object ( [current_field] => 0 [field_count] => 3 [lengths] => [num_rows] => 13 [type] => 0 )
Dit kan wel doorlopen worden door foreach of een while(), maar het is niet je data die je wilt gebruiken. Dat verklaart ook waarom je geen afbeeldingen ziet.
Gewijzigd op 23/05/2022 15:49:01 door - Ariën -
Het toevoegen aan de database heb ik eruit gelaten.
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
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
<?php
//require 'connection.php';
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 . '<br />';
$fileSize = $_FILES["image"]["size"];
$tmpName = $_FILES["image"]["tmp_name"];
echo $tmpNamev. '<br />';
$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['image']['tmp_name'], getcwd(). '/' . $newImageName ) )
{
echo "The file ". htmlspecialchars( basename( $_FILES["image"]["name"])). " has been uploaded.";
$query = "INSERT INTO tb_upload VALUES ('','$name', '$newImageName')";
echo '<p>' . $query . '</p>';
//mysqli_query($conn, $query);
echo '<p><img src="' . $newImageName . '" style="width: 300px;" /></p>';
//"<srcipt> alert('Succesfully Added'); document.location.href = 'data.php';
//</script>";
} else {
echo "Sorry, there was an error uploading your file: ".$_FILES['uploaded_file']['error'];
}
}
}
}
?>
<!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>
</htm>
//require 'connection.php';
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 . '<br />';
$fileSize = $_FILES["image"]["size"];
$tmpName = $_FILES["image"]["tmp_name"];
echo $tmpNamev. '<br />';
$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['image']['tmp_name'], getcwd(). '/' . $newImageName ) )
{
echo "The file ". htmlspecialchars( basename( $_FILES["image"]["name"])). " has been uploaded.";
$query = "INSERT INTO tb_upload VALUES ('','$name', '$newImageName')";
echo '<p>' . $query . '</p>';
//mysqli_query($conn, $query);
echo '<p><img src="' . $newImageName . '" style="width: 300px;" /></p>';
//"<srcipt> alert('Succesfully Added'); document.location.href = 'data.php';
//</script>";
} else {
echo "Sorry, there was an error uploading your file: ".$_FILES['uploaded_file']['error'];
}
}
}
}
?>
<!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>
</htm>
Werkt het nu?
Heb je ook gelezen wat ik zei over je query?
Gewijzigd op 23/05/2022 15:54:51 door - Ariën -
Notice: Undefined variable: tmpNamev in C:\USB WebServer\root\Website\Fontys\HDM\Bedrijfskunde\Groepsdynamica\index.php on line 15
Notice: Undefined index: uploaded_file in C:\USB WebServer\root\Website\Fontys\HDM\Bedrijfskunde\Groepsdynamica\index.php on line 43
Sorry, there was an error uploading your file:
@ Arien mysqli_fetch_assoc heb ik nog niet gedaan. Dat gaat me gewoon boven de pet!!
SQL Boilerplate te bekijken, en deze op te slaan onder je bookmarks/favorieten?
Er staat duidelijke uitleg in over hoe je het moet opbouwen. Dus als je dit voortaan eens aan als leidraad aanhoudt, dan maakt dit het programmeren echt zo fijner omdat je een hoop foutafhandelingen en controles hebt waaraan je bij fouten direct kan zien waar een bepaald probleem zit.
En verder hebben we: 'Notice: Undefined index: uploaded_file' al besproken.
Dus lees in het vervolg je errors eens, en wees bewust met wat je doet. En dus niet meteen copy/paste op het forum plaatsen, maar aandachtig bekijken.
Gebruik ook een goede editor, die bieden ook vaak handige tools en truukjes om je code op orde te houden. Welke gebruik je nu?
Als dat boven je pet gaat, wordt het dan niet serieus tijd om eens de Er staat duidelijke uitleg in over hoe je het moet opbouwen. Dus als je dit voortaan eens aan als leidraad aanhoudt, dan maakt dit het programmeren echt zo fijner omdat je een hoop foutafhandelingen en controles hebt waaraan je bij fouten direct kan zien waar een bepaald probleem zit.
En verder hebben we: 'Notice: Undefined index: uploaded_file' al besproken.
Dus lees in het vervolg je errors eens, en wees bewust met wat je doet. En dus niet meteen copy/paste op het forum plaatsen, maar aandachtig bekijken.
Gebruik ook een goede editor, die bieden ook vaak handige tools en truukjes om je code op orde te houden. Welke gebruik je nu?
Gewijzigd op 23/05/2022 16:39:29 door - Ariën -
Visual Studio Code
Probeer zo uitgebreid mogelijk te reageren en alle aangegeven tips nogmaals in dit topic door te lezen en toe te passen.
Ed Jeurissen op 23/05/2022 16:21:51:
@ Arien mysqli_fetch_assoc heb ik nog niet gedaan. Dat gaat me gewoon boven de pet!!
... en dat terwijl het je slechts 6 dagen geleden nog gelukt is!
https://www.phphulp.nl/php/forum/topic/mysqlifetchassoc/104342/#756616