Afbeelding uploaden !!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mohammed el-faquir

mohammed el-faquir

23/02/2011 20:22:15
Quote Anchor link
ik heb een upload systeem om Afbeeldingen voor een profiel te kunnen opslaan. dat gaat helemaal goed. wat ik nu wil hebben is als de bestand wordt upgeload, dat de bestand naam wordt veranderd. bijvoorbeeld

User 1 upload bestand dan veranderd ik.jpg naar HHS000001.jpg
User 2 upload bestand dan veranderd ik2.jpg naar HHS000002.jpg

en zo maar bij tellen. hier onder staat de script die ik gebruik voor het uploaden.


Quote:
//avatar.php

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
<?php

if (isset($_POST['kkupload'])) {


        $filename = $_FILES['foto']['name'];
        $extensie = substr($filename, -3);

        $map = "images/leden/";
        $file = $_FILES['foto'];
                
        $breedte = $_FILES['foto'];
        $max_bytes = 2000000;
        

        if(strtolower($extensie) != "gif" && strtolower($extensie) != "jpg" && strtolower($extensie) != "jpeg" && strtolower($extensie) != "png")
        {

            echo "Je kan alleen .gif, .jpg .jpeg en .png bestanden uploaden!";
        }


        elseif($_FILES['foto']['size'] > $max_bytes) { echo("Het bestand is groter dan ".$max_bytes." bytes!"); }

        else {

        $length = strlen($filename);
        $name = "pict";
        $name = substr($filename, 0, $length - 4);
        $i = "1";
        $tempname = $name;
        
        $picName = $_FILES['foto']['name'];
        $nr = rand(11111,99999999999);
        if(file_exists($_FILES['foto']['name']))
        {

            $picName = $nr. $_FILES['foto']['name'];
            if(file_exists($picName))
            {

                $picName = $nr. $_FILES['foto']['name'];
            }        
        }

        
        move_uploaded_file($_FILES['foto']['tmp_name'], $map.$picName."") or die("Fout met uploaden plaatje");
        
        require_once 'includes/image.php';
        
        $image = new Image($map.$picName);
        $image->resizeAndSave(250, 200, $map.'250'.$picName);
        
        $image = new Image($map.$picName);
        $image->resizeAndSave(65, 65, $map.'65'.$picName);
        
        $image = new Image($map.$picName);
        $image->resizeAndSave(85, 85, $map.'85'.$picName);
        
        mysql_query("UPDATE `leden` SET `img`='".$picName."' WHERE `gebruikersnaam`='".$_SESSION['uName']."'");
        echo "Avatar is succesvol geupload!";
        }
        
}

?>



Quote:

// images.php


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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?php
class Image {
    
    // The image source
    private $imageSource;
    
    /**
     * Image::__construct()
     *
     * @param mixed $imageSource
     * @return
     */

    public function __construct($imageSource) {
        
        $this->imageSource = $imageSource;
        
    }

    
    /**
     * Image::resizeAndSave()
     *
     * @param mixed $maxWidth
     * @param mixed $maxHeight
     * @return
     */

    public function resizeAndSave($maxWidth, $maxHeight, $destination) {
        
        // Fetch width and height from image
        list($width, $height) = getimagesize($this->imageSource);
        
        // Fetch image extention
        $imageExtention = explode('.', $this->imageSource);
        $imageExtention = strtolower(end($imageExtention));
        
        // Check width and heigt
        if ($width <= $maxWidth && $height <= $maxHeight) {
            
            // Copy image and done..
            copy($this->imageSource, $destination);
        
            return true;
            
        }

        
        // Max width exceeded?
        if ($width > $maxWidth) {
            
            $widthRatio = ($width - $maxWidth) / $width;
            
            $newWidth = $maxWidth;
            $newHeight = $height - ($height * $widthRatio);
            
        }

        
        // Max height exceeded?
        if ($newHeight > $maxHeight) {
            
            $heightRatio = ($newHeight - $maxHeight) / $newHeight;
            
            $newHeight = $maxHeight;
            $newWidth = $newWidth - ($newWidth * $heightRatio);
            
        }

                
        // Create new image
        $imageDestination = imagecreatetruecolor($newWidth, $newHeight);
        
        // Check extention        
        if ($imageExtention == 'jpg' || $imageExtention == 'jpeg') {
            
            // Create new JPG image
            $newImage = imagecreatefromjpeg($this->imageSource);
            imagecopyresampled($imageDestination, $newImage, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
            
            // Save image
            imagejpeg($imageDestination, $destination, 100);
            
        }
elseif ($imageExtention == 'gif') {
            
            // Create new GIF image
            $newImage = imagecreatefromgif($this->imageSource);
            imagecopyresampled($imageDestination, $newImage, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
            
            // Save image
            imagegif($imageDestination, $destination);
            
        }
elseif ($imageExtention == 'png') {
            
            // Create new PNG iamge
            $newImage = imagecreatefrompng($this->imageSource);
            imagecopyresampled($imageDestination, $newImage, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
            
            // Save image
            imagepng($imageDestination, $destination, 9);
            
        }
        
    }
    
}[
/quote]
 
PHP hulp

PHP hulp

01/10/2022 14:03:50
 
Jordi Kroon

Jordi Kroon

23/02/2011 20:39:41
Quote Anchor link
Ik zou het veranderen in avatar-@userid@

@userid@ word vervangen voor het gebruikers id
 
Roel -

Roel -

23/02/2011 22:12:13
Quote Anchor link
Gelukkig is dit een veilig systeem. Probeer maar eens test.php.jpg te uploaden! :-)
 
Mar cel

Mar cel

23/02/2011 22:36:54
Quote Anchor link
@Roel: dan is er nog niets aan de hand, want de afbeelding is nog steeds een .jpg, dat er .php inzit maakt niets uit. Het wordt een ander verhaal wanneer de afbeelding blaat.jpg.php zou heten, maar dat kan in dit geval niet.
 
Michael -

Michael -

23/02/2011 23:16:47
Quote Anchor link
Toch kun je beter op MIME controleren dan op het geen wat achter de punt staat.
Maar dit is allemaal offtopic, graag reacties op de vraag van de ts.
 
Johan Dam

Johan Dam

24/02/2011 09:36:32
Quote Anchor link
controleer de afbeeldingen met 'imagegetsize()' als het geen afbeelding is, geeft ie false terug, maakt niet wat de extensie / mime type is.

Controleren op extensie of MIME is beide lek op een mandje,

OT:
$picname veranderen in 'watdanook_' . $user_id zou prima werken, wil je dat een user meerdere afbeeldingen kan uploaden kan je er 'watdanook_' . $user_id . '_' . $num van maken
$num zou je krijgen door te tellen hoeveel bestanden er met 'watdanook_' . $user_id . '_' beginnen. Doet 'glob()' daar geen hele mooie dingen mee?
 
Mohammed el-faquir

mohammed el-faquir

28/02/2011 20:07:44
Quote Anchor link
Johan Dam op 24/02/2011 09:36:32:
controleer de afbeeldingen met 'imagegetsize()' als het geen afbeelding is, geeft ie false terug, maakt niet wat de extensie / mime type is.

Controleren op extensie of MIME is beide lek op een mandje,

OT:
$picname veranderen in 'watdanook_' . $user_id zou prima werken, wil je dat een user meerdere afbeeldingen kan uploaden kan je er 'watdanook_' . $user_id . '_' . $num van maken
$num zou je krijgen door te tellen hoeveel bestanden er met 'watdanook_' . $user_id . '_' beginnen. Doet 'glob()' daar geen hele mooie dingen mee?

ik begrijp het niet helemaal :(

Kan je mis wat duidelijker zijn ? THNXXX @!
 



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.