undefined index upload script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jack Maessen

Jack Maessen

21/05/2013 20:16:06
Quote Anchor link
ik heb het volgende script om bestanden te uploaden. Het werkt goed, echter ik krijg melding: undefined index: upload ( op de 2e regel)
Ik weet niet hoe ik die moet definieeren:

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
<?php    
for($i=0; $i<count($_FILES['upload']['name']); $i++) {
  //tijdelijke file path
  $tmpFilePath = $_FILES['upload']['tmp_name'][$i];

  //filepath aanmaken
  if ($tmpFilePath != ""){
    //nieuwe filepath aanmaken
    $newFilePath = "./images/thumbs/" . $_FILES['upload']['name'][$i];

    //Upload file naar definitive map
    if(move_uploaded_file($tmpFilePath, $newFilePath)) {
        
        

      //evt echo's
     }
              
  }
}


?>

<form action="" method="post" enctype="multipart/form-data">
<input name="upload[]" type="file" multiple="multiple" />
<input type="submit" value="Upload Bestanden">
Gewijzigd op 21/05/2013 20:16:50 door Jack Maessen
 
PHP hulp

PHP hulp

26/04/2024 19:21:48
 
Eddy E

Eddy E

21/05/2013 21:18:48
Quote Anchor link
Waarschijnlijk de eerste keer dat je de pagina opent?
Ja logisch, want $_FILES is dan nog leeg.

Dat kan je voorkomen door regel 2 tm 20 even in een isset($_FILES) te gooien.
 
Jack Maessen

Jack Maessen

21/05/2013 21:20:54
Quote Anchor link
is opgelost:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if($_SERVER['REQUEST_METHOD'] == 'POST') {

ervoor geplaatst en geen error meer.
Overigens, ik had eerst deze regel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if($_POST) {

Maar toen deed ie niet meer uploaden.
Ik dacht toch dat die verkorte versie algemeen geaccepteerd was...
Echter, nu zit ik nog met 1 probleempje:
Bij uploaden meerdere bestanden tegelijk (bijv 4)geeft ie ook 4 keer dezelfde echo.
Hoe kan ik dat voorkomen? (1 keer is genoeg)
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
27
28
29
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
for($i=0; $i<count($_FILES['upload']['name']); $i++) {
  //tijdelijke file path
  $tmpfilepath = $_FILES['upload']['tmp_name'][$i];

  //filepath aanmaken
  if ($tmpfilepath != ""){
    //nieuwe filepath aanmaken
    $newfilepath = "./images/thumbs/" . $_FILES['upload']['name'][$i];

    //Upload file naar definitive map
   if(move_uploaded_file($tmpfilepath, $newfilepath)) {
        
        //evt echo's
         echo 'Bestand successvol geupload!<br /><br />';
     }

     else {
         echo 'Er is iets fout gegaan met uploaden! Probeer opnieuw';
              }      
  }
}

}
// eind ['REQUEST_METHOD']
?>


<form action="" method="post" enctype="multipart/form-data">
<input name="upload[]" type="file" multiple="multiple" />
<input type="submit" value="Upload Bestanden">
Gewijzigd op 21/05/2013 21:26:16 door Jack Maessen
 
Eddy E

Eddy E

21/05/2013 21:30:44
Quote Anchor link
Jack maessen op 21/05/2013 21:20:54:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if($_SERVER['REQUEST_METHOD'] == 'POST') {

A, dus als ik geen bestand invoer gaat hij het wel uploaden?
Gooi er ook nog even een controle op $_FILES bij... (isset(), !empty() en count() oid).

Quote:
Maar toen deed ie niet meer uploaden.

Je mag morgen wel even in de klas komen zitten tijdens taal hoor.
"deed uploaden". Uploaden is al een werkwoord en heeft geen hulpwerkwoord nodig.

Quote:
Ik dacht toch dat die verkorte versie algemeen geaccepteerd was...

Is ook zo. Maar dan moet er iets als TRUE/FALSE zijn.

Quote:
Bij uploaden meerdere bestanden tegelijk (bijv 4)geeft ie ook 4 keer dezelfde echo.
Hoe kan ik dat voorkomen? (1 keer is genoeg)

De meldingen in een array gooien en dan aan het eind een array_unique() eroverheen.
Beter kan je ook gewoon melden WELK bestand er gelukt is (en welk niet).
Dan is het geen enkel probleem.

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
27
28
29
30
31
32
33
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
for($i=0; $i<count($_FILES['upload']['name']); $i++) {
  //tijdelijke file path
  $tmpfilepath = $_FILES['upload']['tmp_name'][$i];

  //filepath aanmaken
  if ($tmpfilepath != ""){
    //nieuwe filepath aanmaken
    $newfilepath = "./images/thumbs/" . $_FILES['upload']['name'][$i];

    //Upload file naar definitive map
   if(move_uploaded_file($tmpfilepath, $newfilepath)) {
        
        //evt echo's
         $meldingen[] = 'Bestand successvol geupload!<br /><br />';
     }

     else {
          $meldingen[] = 'Er is iets fout gegaan met uploaden! Probeer opnieuw';
              }      
  }
}


// toon hier de unieke meldingen
echo implode("<br>", array_unique($meldingen));

}
// eind ['REQUEST_METHOD']

?>


<form action="" method="post" enctype="multipart/form-data">
<input name="upload[]" type="file" multiple="multiple" />
<input type="submit" value="Upload Bestanden">




[/quote]
 
Jack Maessen

Jack Maessen

21/05/2013 21:35:51
Quote Anchor link
@Eddy; je hebt je geld weer verdiend voor vandaag :P
Werkt perfect. Dankje...
 
Eddy E

Eddy E

21/05/2013 21:39:09
Quote Anchor link
Klopt ja. En nog makkelijk ook :mrgreen:

Maar extra doneren mag altijd ;)
 
Jack Maessen

Jack Maessen

22/05/2013 16:31:26
Quote Anchor link
ik heb nu een check gedaan op de grootte van de te uploaden bestanden en ben nu bezig met een check of het daadwerkelijk image bestanden zijn ( check dus op extensie .jpg, .jpeg, .png, en .gif)
Dit wil me niet lukken (zie regel 45 t/m 52)

de code tot dusver:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php

//error_reporting(E_ALL);



$result = 'Kies een bestand om te uploaden<br /><br />';
if($_SERVER['REQUEST_METHOD'] == 'POST') {


//definities    
$i=0;



  // check of veld leeg is
  if($_FILES['upload']['name'][$i] == "") {
        echo 'Inputveld is leeg. Browse eerst voor een image en klik dan op Upload Bestanden!<br /><br />';
    }

    
    

    
    else {
    
// upload bestand(en)
for($i=0; $i<count($_FILES['upload']['name']); $i++) {
    $maximum_size = $_POST['maxsize']; // maximum groote in bytes (5Mb)
    //tijdelijke filepath

    $filename = $_FILES['upload']['tmp_name'][$i];
  $tmpfilepath = $_FILES['upload']['tmp_name'][$i];
    $size=filesize($_FILES['upload']['tmp_name'][$i]);
    
    

    
    
    // check grootte bestand
    if ($size > $maximum_size) {
    $result = 'Bestand is te groot!<br /><br />';
    die(include 'form.php'); // stop met uploaden, terug naar form
        
    }
    
    // check of bestand een image is
    $filecheck = basename($_FILES['upload']['tmp_name'][$i]);
$ext = strtolower(substr($filecheck, strrpos($filecheck, '.') + 1));

if (!(($ext == "jpg" || $ext == "gif" || $ext == "png") && ($_FILES["upload"]["type"] == "image/jpeg" || $_FILES["upload"]["type"] == "image/gif" || $_FILES["upload"]["type"] == "image/png") )){
    $result = 'Bestand is geen image!<br /><br />';
    die(include 'form.php');
}

    
    
  //filepath aanmaken
  if ($tmpfilepath != ""){
    //nieuwe filepath aanmaken
    $newfilepath = "./images/thumbs/" . $_FILES['upload']['name'][$i];

    //Upload file naar definitive map
        
   if(move_uploaded_file($tmpfilepath, $newfilepath)) {
        
        //evt echo's
         $meldingen[] = 'Bestand(en) successvol geupload!<br /><br />';
     }

     else {
          $meldingen[] = 'Er is iets fout gegaan met uploaden! Probeer opnieuw';
          }      
  }
}

// unieke meldingen
echo implode("<br>", array_unique($meldingen));

}

}
// eind ['REQUEST_METHOD']
echo $result;
?>



Toevoeging op 22/05/2013 20:59:07:

ik heb hem werkende nu:
functie gemaakt voor extensies;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
// functie image extensie
function get_image_extension($name) {
   $name = strtolower($name);
     $i = strrpos($name,".");
     if (!$i) { return ""; }    
         $l = strlen($name) - $i;
             $extension = substr($name, $i+1,$l);
             return $extension;
    }


en:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
$extension = get_image_extension($filename);

if(($extension != "jpg") && ($extension != "jpeg") && ($extension != "gif") && ($extension != "png")) {
$result = 'Bestand(en) is geen image!<br /><br />';

header('Location: uploader3.php'); // stop met uploaden, terug naar form
Gewijzigd op 22/05/2013 16:32:17 door Jack Maessen
 



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.