Ik heb een upload script dat werkt en de code om bestandsformaat en groote te valideren maar krijg het niet werkend ik zet het denk ik niet op de juiste plaats ertussen of het script klopt niet.
Kan iemand me helpen.
Het upload script is werkend:

<?php

// Set Upload Path
$target_dir = 'files/';

if( isset($_FILES['fileUpload']['name'])) {

$total_files = count($_FILES['fileUpload']['name']);

for($key = 0; $key < $total_files; $key++) {

// Check if file is selected
if(isset($_FILES['fileUpload']['name'][$key])
&& $_FILES['fileUpload']['size'][$key] > 0) {

$original_filename = $_FILES['fileUpload']['name'][$key];
$target = $target_dir . basename($original_filename);
$tmp = $_FILES['fileUpload']['tmp_name'][$key];
move_uploaded_file($tmp, $target);
}

}

}

?>
----------------
Hoe moet deze code ertussen?:
---------------
// Get the extension
$ext = strtolower(pathinfo($_FILES["fileUpload"]["name"][$key], PATHINFO_EXTENSION));

// check extension and upload
if( in_array( $ext, array('jpg', 'jpeg', 'png', 'gif', 'bmp'))) {
// Filetype if valid, process uploading
}
-------------
en deze?:
--------------
$maxFileSize = 5 * 1024 * 1024; //5MB
$errors = array();

if($_FILES['fileUpload']['size'][$key] > $maxFileSize){
$errors[$key] = 'File size is greater than allowed size';
}
-----------
of moet ik heel anders doen???
help...
na de plek waar je controleert of er een bestand gekozen is (lijn 13) voeg je de controle toe.
Maar zelf ben ik meer voorstander van een kant-en-klare class die meteen geheel veilig is.
Ikzelf gebruik de upload-class van verot.net!

Enkel op extentie controleren is bovendien alsnog zeer onveilig!!!!!
bedankt voor de tip, ik begrijp dat het beter is een veiliger upload te gebruiken, ik ga me daarin verdiepen...
Simpelweg omdat iets werkt, maakt het nog niet juist.

Wat je allereerst/ook zou moeten controleren is of er geen fouten zijn opgetreden bij het uploaden. Dit doe je door $_FILES['filename']['error'] (of wat voor structuur je ook gebruikt) te inspecteren. Deze zou gelijk moeten zijn aan 0, of beter nog, de constante UPLOAD_ERR_OK.

Voor verdere foutafhandeling zou je onderscheid kunnen maken tussen de verschillende errorcodes.

Sowieso is het onderdeel Handling file uploads wel interessant om een keer door te lezen (maar kijk ook naar de user contributed notes, want niet alle zaken die PHP.net verschaft zijn altijd even goed of veilig).

Of je maakt gebruik van een library zoals @Ariën aanhaalt, zodat je je (in eerste instantie) niet (volledig) hoeft te verdiepen in alle intrinsieke eigenschappen (en pitfalls) voor het uploaden van bestanden.

Reageren