move_uploaded_file plaatst het bestand niet in de folder.
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
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 (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
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
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);
}
}
?>
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 (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
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
<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
}
<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
}
Gewijzigd op 20/11/2018 20:09:02 door - DHU -
Check goed of de map bestaat en of deze wel schrijfrechten (chmod) heeft.
Ik zou gebruik maken van mkdir. Als de map niet bestaat wordt deze gemaakt en je kunt gelijk de rechten meegeven.
Ik zou gebruik maken van mkdir. Als de map niet bestaat wordt deze gemaakt en je kunt gelijk de rechten meegeven.
Sowieso zou ik aanraden om een if-else controle te plaatsen op move_uploaded_file().
Straks gaat er wat mis, en staan foutmeldingen uit, en staat iedereen raar te kijken dat zijn bestand niet geüpload is.
Straks gaat er wat mis, en staan foutmeldingen uit, en staat iedereen raar te kijken dat zijn bestand niet geüpload is.
Michael - op 20/11/2018 20:17:48:
Check goed of de map bestaat en of deze wel schrijfrechten (chmod) heeft.
Ik zou gebruik maken van mkdir. Als de map niet bestaat wordt deze gemaakt en je kunt gelijk de rechten meegeven.
Ik zou gebruik maken van mkdir. Als de map niet bestaat wordt deze gemaakt en je kunt gelijk de rechten meegeven.
Hoi Michael,
De map bestaat. Inmiddels tig keren gecontroleerd. Vooralsnog is het een lokale map op mijn laptop.
Toevoeging op 20/11/2018 20:37:42:
- Ariën - op 20/11/2018 20:20:51:
Sowieso zou ik aanraden om een if-else controle te plaatsen op move_uploaded_file().
Straks gaat er wat mis, en staan foutmeldingen uit, en staat iedereen raar te kijken dat zijn bestand niet geüpload is.
Straks gaat er wat mis, en staan foutmeldingen uit, en staat iedereen raar te kijken dat zijn bestand niet geüpload is.
Hoi Ariën,
Ik had oorspronkelijk een if-else ingebakken. Ik had een msg bij zowel als het bestand goed is verplaatst maar bij een niet gelukt upload een melding dat er iets mis is gegaan.
Zelfs deze handling werkt niet. Ik kreeg geen van beide berichten te zien. Dus ik heb deze er even tussen uitgeslootp om de codering zo klein mogelijk te krijgen om te kijken waar ik de mist inga
Gewijzigd op 20/11/2018 20:38:04 door - DHU -
En als je de $img_folder even absoluut maakt, dus bijvoorbeeld "c:/ergens/". Komt ie dan wel op z'n plek?
Nog een melding in het errorlog? Of laat alle foutmeldingen op het scherm verschijnen:
Nog een melding in het errorlog? Of laat alle foutmeldingen op het scherm verschijnen:
Rob Doemaarwat op 20/11/2018 21:06:27:
een absolute padverwijzing geeft vooralsnog ook nog niet de solution.
het is me niet duidelijk waar ik die error reporting code moet plaatsen. Ik heb 'm nu net boven de move_uploaded_file() geplaatst... maar je raad het al. d'r gebeurt niets :-)
Toevoeging op 20/11/2018 21:51:04:
Rob Doemaarwat op 20/11/2018 21:06:27:
een absolute padverwijzing geeft vooralsnog ook nog niet de solution.
het is me niet duidelijk waar ik die error reporting code moet plaatsen. Ik heb 'm nu net boven de move_uploaded_file() geplaatst... maar je raad het al. d'r gebeurt niets :-)
En als je dit rond de move_uploaded_file(...) doet:
Rob Doemaarwat op 20/11/2018 22:59:53:
dan is onderstaande het resultaat:
VOOR move_uploaded_file(, img/berichten/.DPP_0021.JPEG)
NA move_uploaded_file(, img/berichten/.DPP_0021.JPEG) =
Zoals @Michael aangaf is het bestaan van een directory alleen niet genoeg, deze moet ook de juiste schrijfrechten hebben.
Die directory "img/berichten" kan volgens jou wel bestaan, maar dat moet het systeem ook vinden.
Controleer anders een wat dingen met is_dir() en/of is_writable().
Die directory "img/berichten" kan volgens jou wel bestaan, maar dat moet het systeem ook vinden.
Controleer anders een wat dingen met is_dir() en/of is_writable().
$profile_tmp is dus leeg. Dat zou betekenen dat $_FILES['page-foto']['tmp_name'] leeg is, en er dus iets fout gegaan is bij het uploaden.
Doe eens
Kijken of er een error in zit (of wat er uit de rest is af te leiden).
(het feit dat er "niks" achter de "=" staat betekent dat het resultaat van move_uploaded_file() false is, er wordt dus inderdaad niks verplaatst)
Doe eens
Kijken of er een error in zit (of wat er uit de rest is af te leiden).
(het feit dat er "niks" achter de "=" staat betekent dat het resultaat van move_uploaded_file() false is, er wordt dus inderdaad niks verplaatst)
Hey guys, eea heeft klaarblijkelijk met de bestandsgrootte van de foto zelf te maken. Deze was in oorspronkelijk formaat 3888 x 2592 pixels en 5.25 MB. Nadat ik die in Photoshop heb gehalveerd in pixesl naar 1944 x 1296 pixels en 1.75 MB werkt de move_uploaded_file() dus prima... Nu ik dit weet kan ik hier dus een check voor inbouwen en kan ik if-else weer terugzetten...
Ieder bedankt voor het meedenken .....
Ieder bedankt voor het meedenken .....
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
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
Ik had geen max ingesteld... zal iets standaards zijn vermoed ik
Gewijzigd op 21/11/2018 11:03:40 door - Ariën -
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.
PS: je hoeft niet steeds het voorgaande bericht integraal te quoten. Dat leest erg lastig.
Gewijzigd op 21/11/2018 11:07:23 door - Ariën -
- 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().
Gewijzigd op 21/11/2018 16:38:55 door Thomas van den Heuvel
hoi guys,
is het nog zinvol om de codering die het uiteindelijk is geworden om die hier te posten?
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 :-)
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
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
//*** 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
$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




