File upload van W3Schools krijg ik niet aan de praat
Ik heb jaren geleden een registratie voor deze hulp site gedaan en toen slechts enkele keren aktief geweest. Hoewel ik dus al lang meeloop heb ik eigenlijk geen forum historie.
Ik probeer file upload op mijn site mogelijk te maken. Dit is de html file:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html>
<html>
<body>
<!-- The data encoding type, enctype, MUST be specified as below -->
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="text" name="test">
Select image to upload:
<!-- MAX_FILE_SIZE must precede the file input field -->
<input type="hidden" name="MAX_FILE_SIZE" value="20000" >
<!-- Name of input element, here fileToUpload, determines name in $_FILES array -->
<input type="file" id="Uploadfile" name="fileToUpload" >
<input type="submit" value="Upload Image" name="submit" >
</form>
</body>
</html>
<html>
<body>
<!-- The data encoding type, enctype, MUST be specified as below -->
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="text" name="test">
Select image to upload:
<!-- MAX_FILE_SIZE must precede the file input field -->
<input type="hidden" name="MAX_FILE_SIZE" value="20000" >
<!-- Name of input element, here fileToUpload, determines name in $_FILES array -->
<input type="file" id="Uploadfile" name="fileToUpload" >
<input type="submit" value="Upload Image" name="submit" >
</form>
</body>
</html>
De filehandler: upload.php(in dezelfde map) is slechts een file om te testen of de waarden goed overkomen en dat doen ze dus NIET.
Code (php)
Dit is de output:
Array ( [test] => v [MAX_FILE_SIZE] => 20000 [submit] => Upload Image ) Array ( ) Detail:
Mijn vraag: waarom lukt het niet? Bedankt alvast voor je reactie!
Gewijzigd op 12/11/2020 22:19:27 door - Ariën -
Ik raad aan om eens in je error_log te kijken.
Toevoeging op 12/11/2020 22:31:07:
Ik heb in Plesk gecontroleerd in alle logs sinds vanavond 18 uur: niks dat verband houdt met mijn acties
Op php.net gelezen:
Quote:
If the $_FILES array suddenly goes mysteriously empty, even though your form seems correct, you should check the disk space available for your temporary folder partition. In my installation, all file uploads failed without warning. After much gnashing of teeth, I tried freeing up additional space, after which file uploads suddenly worked again.
Kijk ook even of upload_tmp_dir leesbaar+schrijfbaar is.
Je HTML-bestand werkt hier overigens wel goed. Dus check je webserverconfiguratie en de permissies.
Gewijzigd op 13/11/2020 15:45:51 door - Ariën -
Nou ben ik echt heel slecht thuis op de webserver. Ik heb ook een hostingpakket waarbij ik volgens mij niet zelf een php.ini kan instellen. Mijn hosting provider geeft me er wel wat info over en bv fileupload kan ik zelf aan of uit zetten. In mijn php file vind je de waarden waarvan ik dacht er genoeg van te hebben. Mis ik er dan nog?
De upload_tmp_dir , waar en waarmee vind ik die: Ik gebruik Core ftp als ftp programma en kan natuurlijk kijken in de hosting informatie.
Ook Unix is vrijwel onbekend terrein voor mij, behalve dat ik eens een oude laptop op Ubuntu heb gezet.
Dus samengevat waar zit die temp dir, heb ik genoeg webserverconfig gedaan en welke credentials op welke dirs?
W3schools levert je wel de php way to do it, maar gaat hamper niet in op de achterkant.
Misschien is hier een artikel over?
Jij zou op de standaard upload_tmp_dir geen invloed op hoeven uitoefenen. Je kan het proberen via php.ini of .htaccess, maar het lijkt mij meer een foutje op de server.
Welke achterkant wil je eigenlijk weten?
Gewijzigd op 15/11/2020 21:24:21 door - Ariën -
Klinkt inderdaad als een serveraangelegenheid maar 20000 bytes (~20kb) als MAX_FILE_SIZE lijkt mij nogal laag voor een afbeelding.
20 kB is idd niet veel, maar veranderen in value="1000000" levert nog steeds dezelfde (ongewenste) output:
Array ( [test] => y [MAX_FILE_SIZE] => 1000000 [submit] => Upload Image ) Array ( ) Detail:
@Ariën: met achterkant bedoelde ik : PHP ini waarden en credentials
Ik ga eens even mijn hosting provider contacten
Toevoeging op 17/11/2020 14:13:55:
TXS allemaal.
De beste tip bleek die van Ariën: contact je hosting provider.
Het probleem zat er in dat ik deze files op een subdomein had zitten. Ik had weliswaar de fileupload op on gezet, maar dat blijkt alleen te gelden op het hoofddomein. Op het sub domein mag het anders geregeld zijn(stond zonder dat ik dat in de gaten had op off).
En passant ontdekte ik ook dat ik onbedoeld op het subdomein een andere PHP versie draaide dan op het hoofddomein. Scheelde niet veel 7.2 of 7.4, maar toch.
Kort en goed: een leerzame sessie. Iedereen bedankt die mee dacht!
Toevoeging op 17/11/2020 14:14:31:
Topic kan gesloten met "oplossing gevonden"