login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Uploaden

Offline arian - 19/07/2006 12:47
Avatar van arianHTML interesse Ik heb een raar verschijnsel.
Nl.
ik heb dit formulier:
  1. <form action="upload.php" method="post" enctype="multipart/form-data">
  2. <input type="file" name="banner"><br>
  3. <input type="submit" name="submit" value="Upload">
  4. </form>

en deze php code
  1. <?
  2. if(isset($_FILES['banner'])) {
  3. echo "Het bestand is opgeslagen";
  4. } else {
  5. echo "Selecteer een bestand";
  6. }
  7. ?>


als je eerst een bestand invult zegt hij "het bestand is opgeslagen". tot zover klopt het nog.
maar als je géén bestand invult in het veld "banner". zegt hij nog steeds "het bestand is opgeslagen". Terwijl hij dan moet zeggen "Selecteer een bestand".

Waar zou dit aan kunnen liggen, en hoe kan ik er toch voor zorgen dat hij toch verschil uitmaakt tussen een ingevult veld en een niet ingevult veld.

8 antwoorden

Gesponsorde links
Offline Thomas - 19/07/2006 12:57 (laatste wijziging 19/07/2006 12:57)
Avatar van Thomas Moderator Controleer dit op de juiste manier? Als je een bestand-veld in je formulier hebt zitten, dan zal deze worden meegestuurd als je het formulier submit, ongeacht of deze inhoud heeft of niet.

Met behulp van $_FILES['banner']['error'] kun je uitspraken doen over wat er fout ging bij/met/tijdens/na de upload.

Zie php.net.
Offline arian - 19/07/2006 13:33
Avatar van arian HTML interesse dus als je bijvoorbeeld dit ervan maakt dan werkt het wel:
<?
if(isset($_FILES['banner'])) {
if($_FILES['banner']['error'] == 4){
echo "Selecteer een bestand";
}else{
echo 'het bestand is opgeslagen';
}
} else {
echo "Selecteer een bestand";
}
?>
Offline arian - 19/07/2006 13:34 (laatste wijziging 19/07/2006 13:42)
Avatar van arian HTML interesse dus als je bijvoorbeeld dit ervan maakt dan werkt het wel:

  1. <?
  2. if(isset($_FILES['banner'])) {
  3. if($_FILES['banner']['error'] == 4){
  4. echo "Selecteer een bestand";
  5. }else{
  6. echo 'het bestand is opgeslagen';
  7. }
  8. } else {
  9. echo "Selecteer een bestand";
  10. }
  11. ?>


Sorry voor de dubbelpost
:s
Offline Nation - 19/07/2006 13:48
Avatar van Nation PHP interesse je kan ook op edit kliken he:p
Offline Thomas - 19/07/2006 13:54
Avatar van Thomas Moderator Die isset-constructie leverde toch al geen gewenste situatie op?
Ik zou enkel gebruik maken van die errorcode (en eventueel de functie is_uploaded_file()) om vast te stellen of er iets geupload is.
Offline xSc - 19/07/2006 13:56
Avatar van xSc Onbekend move_uploaded_file().
Offline Thomas - 19/07/2006 14:13
Avatar van Thomas Moderator Wat Henri waarschijnlijk probeert te zeggen is dat als je een bestand hebt geupload je via PHP nog moet vertellen wat zijn eindbestemming is.

Als je een bestand upload, zal deze in een tijdelijke folder op de webserver worden gezet. Deze tijdelijke folder wordt bij beeindiging van het script leeggemaakt.

Je moet dus voor die tijd het bestand (m.b.v. move_uploaded_file()) verplaatsen naar zijn uiteindelijke bestemming zodat deze upload ook daadwerkelijk ergens opgeslagen wordt.
Offline arian - 19/07/2006 15:30
Avatar van arian HTML interesse jaja weet ik ;)
In dit geval zet ik het bestand niet in een map ofzo maar in de database.
Maar dat maakte niet uit gezien mijn vraag. ;)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.205s