PHP upload script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Snelle Jaap

Snelle Jaap

01/10/2012 12:38:25
Quote Anchor link
Ik ben bezig met een uploadscript maar ik heb geen idee waar de avatars blijven.
De map waar ik ze in wil krijgen heet avatars.

Mappenstructuur:
\\webserver\Websites\tmtf-11\website\avatars

Code:


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
<?PHP  
$map
= "avatars/";
$max = "1000000";  
$ext = "jpg JPG gif GIF png PNG";  
if ($_POST['Uploaden'])
{
  
    if (!$_FILES['bestand'])  
        print ("Geef een bestand op!");
    else
    {  
        // Bestands naam opvragen
        $bestand2 = explode("\\", $_FILES['bestand']['name']);  
        $laatste = count($bestand2) - 1;  
        $bestand2 = "$bestand2[$laatste]";  
        
        // Extensie van bestand opvragen
        $bestand3 = explode(".", $bestand2);  
        $laatste = count($bestand3) - 1;  
        $bestand3 = "$bestand3[$laatste]";  
        $bestand3 = strtolower($bestand3);  
        
        // Toegestaande extensies opvragen
        
        $ext = strtolower($ext);  
        $ext = explode(" ", $ext);  
        $aantal = count($ext);  
        
        for ($tel = 0;$tel < $aantal; $tel++)
        {
  
            if ($bestand3 == $ext[$tel])
            {
  
                $extfout = "nee";  
            }
        }
  
    
        if (!$extfout)
        {
  
            print ("Het bestand \"$bestand2\" kan niet worden geupload omdat de extensie niet is toegestaan!");  
        }
  
        else  
        {  
            if ($_FILES['bestand']['size'] > $max)  
                print ("Het bestand \"$bestand2\" is groter dan $max bytes!");  
            else  
            {  
                // Opslaan van het bestand
                move_uploaded_file($_FILES['bestand'], "$map$bestand2");  
                print ("Het bestand \"$bestand2\" is met succes geupload!");  
            }  
        }
    }
}
  


// Upload formulier

print ("<form method=post action=" . $_SERVER['PHP_SELF'] . " enctype=multipart/form-data>
Bestand: <input type=\"file\" name=\"bestand\"><br><br>
<input type=\"submit\" name=\"Uploaden\" value=\"Uploaden\"></form>"
);

?>
 
PHP hulp

PHP hulp

29/03/2024 10:28:52
 
Marvin H

Marvin H

01/10/2012 12:46:48
Quote Anchor link
nu plaatst hij de bestanden in $map$bestand2, dit gaat niet goed zo...

Ik zou op regel 47 het veranderen in:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
                move_uploaded_file($_FILES['bestand'], $map.$bestand2);
?>


en zet op regel 2 er een / voor en haal de laatste / weg

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$map
= "/avatars";
?>
 
- Ariën  -
Beheerder

- Ariën -

01/10/2012 12:47:34
Quote Anchor link
Misschien ook maar even foutafhandeling toevoegen op je move_uploaded_file?
 
Snelle Jaap

Snelle Jaap

01/10/2012 12:49:40
Quote Anchor link
Ik heb het veranderd maar nog steeds staat er niks in mijn avatars map. Er staat wel dat het bestand succesvol is geupload.
 
Marvin H

Marvin H

01/10/2012 12:54:06
Quote Anchor link
voeg inderdaad zoals -Aar- aangeeft even een foutafhandeling toe, of geef tijdelijk alle php error weer door dit bovenaan in je php file te zetten:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
?>
 
- SanThe -

- SanThe -

01/10/2012 12:54:21
Quote Anchor link
Zet error_reporting[E_ALL] eens aan want op deze regel moet een error komen:
move_uploaded_file($_FILES['bestand'], "$map$bestand2");
 
Snelle Jaap

Snelle Jaap

01/10/2012 12:54:58
Quote Anchor link
- Aar - op 01/10/2012 12:47:34:
Misschien ook maar even foutafhandeling toevoegen op je move_uploaded_file?


Net toegevoegd maar hij laat geen foutmelding zien, alleen wat ik zelf al in het script heb gezet.

Toevoeging op 01/10/2012 12:56:50:

Ooh nu krijg ik deze melding:

Notice: Undefined index: Uploaden in E:\Websites\tmtf-11\website\upload.php on line 7
 
Jaron T

Jaron T

01/10/2012 13:00:10
Quote Anchor link
gebruik server request method ipv isset post input naam..
 
Snelle Jaap

Snelle Jaap

01/10/2012 13:04:26
Quote Anchor link
Heb van $_POST $_REQUEST gemaakt en krijg nu deze error.


Warning: move_uploaded_file() expects parameter 1 to be string, array given in E:\Websites\tmtf-11\website\upload.php on line 49
 
- Ariën  -
Beheerder

- Ariën -

01/10/2012 13:26:59
Quote Anchor link
Waarom gebruik je $_REQUEST ?
 
Marvin H

Marvin H

01/10/2012 13:28:29
Quote Anchor link
- Aar - op 01/10/2012 13:26:59:
Waarom gebruik je $_REQUEST ?


Omdat Jaron T dat vroeg in vorige post
 
Jaron T

Jaron T

01/10/2012 13:39:35
Quote Anchor link
Marvin Houweling op 01/10/2012 13:28:29:
- Aar - op 01/10/2012 13:26:59:
Waarom gebruik je $_REQUEST ?


Omdat Jaron T dat vroeg in vorige post


Nee, http://www.php.net/manual/en/reserved.variables.server.php

oftewel; if ($_SERVER['REQUEST_METHOD'] == 'POST') en de rest $_POST laten (op $_FILES) na.
 
Snelle Jaap

Snelle Jaap

01/10/2012 13:46:57
Quote Anchor link
Heb de code nu aangepast in dit:

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
<?PHP  
ini_set('display_errors',1);
error_reporting(E_ALL);

$map = "/avatars";
$max = "1000000";  
$ext = "jpg JPG gif GIF png PNG";  
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
  
    if (!$_FILES['bestand'])  
        print ("Geef een bestand op!");
    else
    {  
        // Bestands naam opvragen
        $bestand2 = explode("\\", $_FILES['bestand']['name']);  
        $laatste = count($bestand2) - 1;  
        $bestand2 = "$bestand2[$laatste]";  
        
        // Extensie van bestand opvragen
        $bestand3 = explode(".", $bestand2);  
        $laatste = count($bestand3) - 1;  
        $bestand3 = "$bestand3[$laatste]";  
        $bestand3 = strtolower($bestand3);  
        
        // Toegestaande extensies opvragen
        
        $ext = strtolower($ext);  
        $ext = explode(" ", $ext);  
        $aantal = count($ext);  
        
        for ($tel = 0;$tel < $aantal; $tel++)
        {
  
            if ($bestand3 == $ext[$tel])
            {
  
                $extfout = "nee";  
            }
        }
  
    
        if (!$extfout)
        {
  
            print ("Het bestand \"$bestand2\" kan niet worden geupload omdat de extensie niet is toegestaan!");  
        }
  
        else  
        {  
            if ($_FILES['bestand']['size'] > $max)  
                print ("Het bestand \"$bestand2\" is groter dan $max bytes!");  
            else  
            {  
                // Opslaan van het bestand
                 move_uploaded_file($_FILES['bestand'], $map.$bestand2);    
                print ("Het bestand \"$bestand2\" is met succes geupload!");  
            }  
        }
    }
}
  


// Upload formulier

print ("<form method=post action=" . $_SERVER['PHP_SELF'] . " enctype=multipart/form-data>
Bestand: <input type=\"file\" name=\"bestand\"><br><br>
<input type=\"submit\" name=\"Uploaden\" value=\"Uploaden\"></form>"
);

?>


En krijg nu deze error:

Warning: move_uploaded_file() expects parameter 1 to be string, array given in E:\Websites\tmtf-11\website\upload.php on line 50
 
- Ariën  -
Beheerder

- Ariën -

01/10/2012 14:02:15
Quote Anchor link
$_FILES['bestand'] is een array met meerdere waardes. Gebruik eens: $_FILES['bestand']['tmp_name']
 
Snelle Jaap

Snelle Jaap

01/10/2012 14:14:01
Quote Anchor link
Ook aangepast en nu krijg ik deze melding(en):
Warning: move_uploaded_file(/avatarsJellyfish.jpg): failed to open stream: Permission denied in E:\Websites\tmtf-11\website\upload.php on line 50

Warning: move_uploaded_file(): Unable to move 'C:\Temp\phpE51E.tmp' to '/avatarsJellyfish.jpg' in E:\Websites\tmtf-11\website\upload.php on line 50
Het bestand "Jellyfish.jpg" is met succes geupload!
 
- Ariën  -
Beheerder

- Ariën -

01/10/2012 14:24:11
Quote Anchor link
ik gok dat je geen schrijf rechten hebt voor de bewuste map....
 
- SanThe -

- SanThe -

01/10/2012 14:35:19
Quote Anchor link
Kijk nou eens naar de naam: '/avatarsJellyfish.jpg'
 
Sander Z

Sander Z

01/10/2012 15:50:34
Quote Anchor link
En wat als mijn avatar dezelfde naam heeft?
 
Marvin H

Marvin H

01/10/2012 15:52:14
Quote Anchor link
Sander Z op 01/10/2012 15:50:34:
En wat als mijn avatar dezelfde naam heeft?


Dan wordt deze automatisch overschreven...
 
Snelle Jaap

Snelle Jaap

03/10/2012 09:04:27
Quote Anchor link
- SanThe - op 01/10/2012 14:35:19:
Kijk nou eens naar de naam: '/avatarsJellyfish.jpg'


Ja hij zet het aan elkaar en dat lijkt me niet de bedoeling want dat is de naam van het bestand. Dus hoe zou ik mijn code moeten aanpassen dan?
 



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.