File upload van W3Schools krijg ik niet aan de praat

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Henk van Huffelen

Henk van Huffelen

12/11/2020 21:59:48
Quote Anchor link
Hoi,
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)
PHP script in nieuw venster Selecteer het PHP script
1
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>


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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
print_r($_POST);
print_r($_FILES);
echo "Detail: ". $_FILES["fileToUpload"]["name"];
/*
php.ini settings:
post_max_size = 8M (Default)
upload_max_filesize = 2M (Default)
file_uploads = on (Default)
*/

?>


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 -
 
PHP hulp

PHP hulp

27/11/2020 09:31:03
 
- Ariën -
Beheerder

- Ariën -

12/11/2020 22:23:18
Quote Anchor link
Ik raad aan om eens in je error_log te kijken.
 
Henk van Huffelen

Henk van Huffelen

12/11/2020 22:26:00
Quote Anchor link
Ik heb mijn oorspronkelijk bericht aangevuld met de schermoutput rprint($_FILES) geeft alleen maar Array()

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
 
- Ariën -
Beheerder

- Ariën -

13/11/2020 15:44:58
Quote Anchor link
Misschien is je schijf vol?
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 -
 
Henk van Huffelen

Henk van Huffelen

15/11/2020 20:59:31
Quote Anchor link
Ah, 1 ding is duidelijk: het script is dus technisch in orde.
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?
 
- Ariën -
Beheerder

- Ariën -

15/11/2020 21:23:27
Quote Anchor link
Standaard moet het gewoon werken. Dus leg de bal eens bij hun.....
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 -
 
Thomas van den Heuvel

Thomas van den Heuvel

15/11/2020 23:03:38
Quote Anchor link
Klinkt inderdaad als een serveraangelegenheid maar 20000 bytes (~20kb) als MAX_FILE_SIZE lijkt mij nogal laag voor een afbeelding.
 
Henk van Huffelen

Henk van Huffelen

17/11/2020 14:07:05
Quote Anchor link
@Thomas:
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"
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.