php script uploads vertificatie invoegen??

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Frank trade

frank trade

14/06/2018 22:38:49
Quote Anchor link
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:

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
18
19
20
21
22
23
24
25
26
<?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...
 
PHP hulp

PHP hulp

26/04/2024 12:26:02
 
- Ariën  -
Beheerder

- Ariën -

14/06/2018 23:08:07
Quote Anchor link
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!!!!!
Gewijzigd op 14/06/2018 23:10:41 door - Ariën -
 
Frank trade

frank trade

15/06/2018 10:56:47
Quote Anchor link
bedankt voor de tip, ik begrijp dat het beter is een veiliger upload te gebruiken, ik ga me daarin verdiepen...
 
Thomas van den Heuvel

Thomas van den Heuvel

15/06/2018 16:00:14
Quote Anchor link
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.
 



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.