move_uploaded_file plaatst het bestand niet in de folder.
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 -
schrijfrechten (chmod) heeft.
Ik zou gebruik maken van mkdir. Als de map niet bestaat wordt deze gemaakt en je kunt gelijk de rechten meegeven.
Check goed of de map bestaat en of deze wel Ik zou gebruik maken van mkdir. Als de map niet bestaat wordt deze gemaakt en je kunt gelijk de rechten meegeven.
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 -
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) =
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().
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)
Ieder bedankt voor het meedenken .....
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
Ik had geen max ingesteld... zal iets standaards zijn vermoed ik
Gewijzigd op 21/11/2018 11:03:40 door - Ariën -
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
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. :-)
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