Uploadform

Status
Niet open voor verdere reacties.

AAley

Gebruiker
Lid geworden
23 jun 2003
Berichten
274
Hallo!

Ik heb een uploadform in elkaar geknutselt maar ik heb een probleem:
Als hij alle checks doorstaat,
moet hij de foto's in een bepaalde map zetten.
Staat aangeven in het script waar maar toch geeft hij error.
Iemand?:

PHP:
<?php //// CONFIG START //// 
// Array met toegestane bestandstypes: 
$allowed_type_array = array('image/bmp','image/jpeg','image/pjpeg','image/gif','image/x-png'); 

// Maximum toegstane grootte van upload (in bytes): 
$max_upload = 8563; 

// Locatie voor upgeloade files (slash op het einde!): 
$uploaddir = 'opgeladen_files/'; 

// Errorstatus altijd true in begin, = geen errors: 
$error_status = true; 

// Constante inleiding voor eventuele foutmelding: 
$error_message = 'Volgende zaken liepen verkeerd:\n\n'; 
//// CONFIG END //// 

// Als men iets upgeload heeft: 
if (isset($_POST['submit'])) { 
      
    // Check bestandstype: 
    if (!in_array($_FILES['imagefile']['type'], $allowed_type_array)) { 
        $error_status = false; 
        $error_message .= '- Bestandstype niet toegestaan\n'; 
    } 
      
    // Check bestandsgrootte: 
    if ($_FILES['imagefile']['size'] > $max_upload) { 
        $error_status = false; 
        $error_message .= '- Bestand te groot\n'; 
    } 
      
    // Als de checks niet werden doorstaan: 
    if (!$error_status) { 
        echo '<script language="javascript">alert("'.$error_message.'"); history.go(-1)</script>'; 
        exit(); 
    } 
      
    // Als de checks wel werden doorstaan: 
    move_uploaded_file($_FILES['imagefile']['tmp_name 
'], $uploaddir.$_FILES['imagefile']['name']) or die ('Fout bij verplaatsen van upgeloade file!'); 
    echo '<b>Bestand werd succesvol upgeload!</b><br />'; 
    echo 'Bestandsnaam: '.$_FILES['imagefile']['name'].'<br />'; 
    echo 'Bestandsgrootte: '.$_FILES['imagefile']['size'].' bytes<br />'; 
    echo 'Bestandstype: '.$_FILES['imagefile']['type'].'<br />'; 

} 

?> 

<form action="<?=$_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data"> 
<input type="file" name="imagefile" size="50" /><br /> 
<input type="submit" name="submit" value="Submit" /> 
</form>

Greetz,
AAley :cool:
 
Zo werkt ie wel bij mij:

PHP:
move_uploaded_file($imagefile , $uploaddir.$_FILES['imagefile']['name']) 
or die ('Fout bij verplaatsen van upgeloade file!');
 
Hou er trouwens rekening mee dat het bestandtype door de uploader aangegeven wordt. Als ik een php bestand upload en aangeeft dat het een image/pjpeg is accepteert het script dat vrolijk.
Misschien kan je een extensiecheck er bij in bouwen?
 
Geplaatst door nteusink
Zo werkt ie wel bij mij:

PHP:
move_uploaded_file($imagefile , $uploaddir.$_FILES['imagefile']['name']) 
or die ('Fout bij verplaatsen van upgeloade file!');
Bedankt! het werkt :)

Zo'n extensie check is niet zodoende nodig,
aangezien je toch maar een maximale grootte kunt uploaden.
 
grootte is niet echt relevant in dit geval, door .php bestanden te uploaden naar een site kan je immers php commando's uitvoeren. je kan er natuurlijk ook gewoon voor zorgen dat gewone gebruikers niet bij de upload directory kunnen komen (.htaccess)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan