Hoi...

Zouden jullie eens met me mee willen kijken aub? Ik zal het ongetwijfeld niet goed doen hoor... weet ik. maar ik kom met zoekopdrachten op het web toch uit op onderstaande. Ik wil graag een foto uploaden. Nu wordt de naam van de foto keurig opgeslagen in de database. MAar het bestand wordt van de temp niet verplaatst naar de folder waar die moet komen. Deze blijft gewoon leeg. Krijg ook geen error melding oid. Maar zit 'm de crux? Geen idee... Julie vast wel ;-)

Op voorhand bedankt voor het meedenken,
Dirk

[code]
function berichttoevoegen(){
global $MySQL;

if (isset($_POST['submit'])) {

$pageNaam = mysqli_real_escape_string($MySQL, $_POST['page-onderwerp']);
$pageData = mysqli_real_escape_string($MySQL, $_POST['page-bericht']);
$pageGebruikerId = mysqli_real_escape_string($MySQL, $_POST['page-gebruikerId']);

$pageFoto = $_FILES['page-foto']['name'];
$profile_tmp = $_FILES['page-foto']['tmp_name'];
$img_folder = "img/berichten/";
move_uploaded_file($profile_tmp, $img_folder.$pageFoto);


$aanmaken = "INSERT INTO page

(pageNaam, pageData, pageFoto, pageGebruikerId)

VALUES

('$pageNaam', '$pageData', '$pageFoto', '$pageGebruikerId')";

if (mysqli_query($MySQL, $aanmaken)){
echo '<p><h1>Er is een nieuw bericht toegevoegd aan de database</h1>';
}else{
echo 'Sorry,'.mysqli_error($MySQL);
}
}

?>
[code]
<form action="?module=beheer&actie=berichttoevoegen" method="post" enctype="multipart/form-data">
<table cellpadding="5" border="0">
<tr>
<td colspan="2"><font color="green" size="4" face="comic sans ms">Bericht toevoegen</font></td>
</tr>
<tr>
<tr>
<td>Onderwerp</td>
<td><input type="text" name="page-onderwerp" size="40%" required="required"></td>
</tr>
<tr>
<td>Bericht</td>
<td><textarea rows="8" cols="35" name="page-bericht"></textarea></td>
</tr>
<tr>
<td>Foto</td>
<td><input type="file" name="page-foto"></td>
</tr>
<tr>
<td></td>
<td>
<input type="hidden" name="page-gebruikerId" value="<?php echo $_SESSION['loginId']; ?>">

</td>
<tr>
<td><input type="submit" name="submit" value="Opslaan"><a href="?module=beheer"><input type="button" value="Annuleren"></a></td>
</tr>
</table>
</form>
<?php

}
Het heeft wel met de foto te maken, maar het echte probleem zit hem in de upload_max_filesize die erg laag staat ingesteld.

Hier kan je prima een goede foutafhandeling voor inbouwen aan de hand van $_FILES['file']['error']:
http://php.net/manual/en/features.file-upload.errors.php
** quoteknip **
Ik had geen max ingesteld... zal iets standaards zijn vermoed ik
Ja, er is standaard een max. Kijk maar eens maar phpinfo.

PS: je hoeft niet steeds het voorgaande bericht integraal te quoten. Dat leest erg lastig.
- Ariën - op 21/11/2018 10:14:18
Het heeft wel met de foto te maken, maar het echte probleem zit hem in de upload_max_filesize die erg laag staat ingesteld.

Dat is niet het enige.

upload_max_filesize is de maximale grootte van één geupload bestand.

Maar dan heb je nog:
post_max_size: de maximale grootte van alle gePOSTe data.

Alsook:
memory_limit: de maximale hoeveelheid geheugen dat een script mag claimen.

Er zal dus zoiets moeten gelden:
memory_limit >= post_max_size >= upload_max_filesize.

Dit staat trouwens prima uitgelegd in de appendix van ini_set().
hoi guys,
is het nog zinvol om de codering die het uiteindelijk is geworden om die hier te posten?
Ja hoor, laat maar (als relevante code) zien wat je hebt. :-)
Het is uiteindelijk onderstaande geworden... dit werkt bij mij als een tierelier :-)


//*** bestanden upload proces
						$target_dir = "img/blaaskalender/";
						$blaaskalenderImage = $target_dir . basename($_FILES["fileToUpload"]["name"]);
						$uploadOk = 1;
						$imageFileType = strtolower(pathinfo($blaaskalenderImage,PATHINFO_EXTENSION));
						// Controleer of het bestand een image is of dat deze niet echt is
						if(isset($_POST["submit"])) {
							$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
							if($check !== false) {
								echo "Bestand is een foto - " . $check["mime"] . ".";
								$uploadOk = 1;
							} else {
								echo "Voor zover we het kunnen bepalen is dit geen foto.";
								$uploadOk = 0;
							}
						}
						// Controleer of het bestand al bestaat
						if (file_exists($blaaskalenderImage)) {
							echo "Sorry, dit bestand bestand bestaat al";
							$uploadOk = 0;
						}
						// Controleer de grootte van het bestand
						if ($_FILES["fileToUpload"]["size"] > 2000000) {
							echo "Sorry, dit bestand is te groot om te kunnen uploaden.";
							$uploadOk = 0;
						}
						// Sta alleen bepaalde bestandsformaten toe
						if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
						&& $imageFileType != "gif" ) {
							echo "Sorry, alleen bestanden met de extensies JPG, JPEG, PNG & GIF files zijn toegestaan.";
							$uploadOk = 0;
						}
						// Controleer of $uploadOk is op 0 is gezet bij een foutmelding
						if ($uploadOk == 0) {
							echo "Sorry, het bestand is niet geupload.";
						// wanneer alles ok is, probeer dan te uploaden
						} else {
							if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $blaaskalenderImage)) {
								echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " is geupload.";
							} else {
								echo "Sorry, er is iets mis gegaan bij het uploaden van het bestand.";
							}
						}
						//***einde bestanden upload proces

Reageren