Afbeelding toevoegen in database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Martijn

Martijn

12/04/2006 20:31:00
Quote Anchor link
Hallo,

Hieronder de code van een uploadscript. De locatie van de geuploade foto zal naar de database moeten worden geschreven. Alleen gebeurd dit niet. Waar ligt het 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
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<?
$path
= "images/";     // folder waarin de plaatjes moet komen
$max_witdh = 640;     // de maximale hoogte van het plaatje
$max_height = 480;    // de maximale breedte van het plaatje
$name = "pict";     // naam van het plaatje (eerst bestand wordt pict0.jpg, pict1.jpg, etc...)
$kwaliteit = "65";  // kwaliteit waarmee de JPG bewaard wordt
set_time_limit("0");

function
ImageCopyResampleBicubic (&$dst_img, &$src_img, $dst_x,
$dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h)

{

    $palsize = ImageColorsTotal ($src_img);
    for ($i = 0; $i < $palsize; $i++) {  // get palette.
        $colors = ImageColorsForIndex ($src_img, $i);
        ImageColorAllocate ($dst_img, $colors['red'], $colors['green'],
$colors['blue']);
    }


    $scaleX = ($src_w - 1) / $dst_w;
    $scaleY = ($src_h - 1) / $dst_h;

    $scaleX2 = (int) ($scaleX / 2);
    $scaleY2 = (int) ($scaleY / 2);

    for ($j = $src_y; $j < $dst_h; $j++) {
        $sY = (int) ($j * $scaleY);
        $y13 = $sY + $scaleY2;

        for ($i = $src_x; $i < $dst_w; $i++) {
            $sX = (int) ($i * $scaleX);
            $x34 = $sX + $scaleX2;

            $color1 = ImageColorsForIndex ($src_img, ImageColorAt ($src_img, $sX,
$y13));
            $color2 = ImageColorsForIndex ($src_img, ImageColorAt ($src_img, $sX,
$sY));
            $color3 = ImageColorsForIndex ($src_img, ImageColorAt ($src_img, $x34,
$y13));
            $color4 = ImageColorsForIndex ($src_img, ImageColorAt ($src_img, $x34,
$sY));

            $red = ($color1['red'] + $color2['red'] + $color3['red'] +
$color4['red']) / 4;
            $green = ($color1['green'] + $color2['green'] + $color3['green'] +
$color4['green']) / 4;
            $blue = ($color1['blue'] + $color2['blue'] + $color3['blue'] +
$color4['blue']) / 4;

            ImageSetPixel ($dst_img, $i + $dst_x - $src_x, $j + $dst_y - $src_y,
ImageColorClosest ($dst_img, $red, $green, $blue));  
        }
    }
}


$file = $_FILES["image"]["name"];        // pakt bestandsnaam van de geselecteerde plaatje
$image = $_FILES["image"]["tmp_name"];
$type = $_FILES["image"]["type"];         // bestands type pakken



if ($type == "image/pjpeg" XOR $type == "image/jpeg") {
    $src_img = ImageCreateFromJPEG($image);
    $img_w = imagesx($src_img);
    $img_h = imagesy($src_img);
    
    if ($img_w > $img_h) {
        if ($img_w > $max_witdh) {
            $dst_w = $max_witdh;
            $factor = $img_w / $dst_w;
            $dst_h = $img_h / $factor;
        }
else {
            $dst_w = $img_w;
            $dst_h = $img_h;
        }
    }
else {
        if ($img_h > $max_height) {
            $dst_h = $max_height;
            $factor = $img_h / $dst_h;
            $dst_w = $img_w / $factor;
        }
else {
            $dst_w = $img_w;
            $dst_h = $img_h;
        }
    }
  
        
        ob_start();
    phpinfo(8);
    $phpinfo=ob_get_contents();
    ob_end_clean();
    $phpinfo=strip_tags($phpinfo);
    $phpinfo=stristr($phpinfo,"gd version");
    $phpinfo=stristr($phpinfo,"version");
    $end=strpos($phpinfo," ");
    $phpinfo=substr($phpinfo,0,$end);
    $phpinfo=substr($phpinfo,7);
    if(version_compare("2.0", "$phpinfo")==1) {  
        $dst_img = imagecreate($dst_w,$dst_h);
    }
else {
        $dst_img = imagecreatetruecolor($dst_w,$dst_h);    
    }
    
        if($img_w > $max_witdh || $img_h > $max_height) {
        ImageCopyResampleBicubic($dst_img,$src_img,0,0,0,0,$dst_w,$dst_h,$img_w,$img_h);
    }
else {
        imagecopy($dst_img,$src_img,0,0,0,0,$img_w,$img_h);
    }

    
    if (!file_exists($path)) {
        mkdir($path, 0775);
    }


        
    $i = 0;  
    
    while (file_exists($path.$name.$i.".jpg")) {  
           $i = $i + 1;  
       }
  

       $name = $name . $i;

    imagejpeg($dst_img, $path.$name.".jpg", $kwaliteit);
    imagedestroy($dst_img);
    imagedestroy($src_img);

    
    echo "<img src=\"".$path.$name.".jpg\" border=\"0\"><p>";
    echo "Het plaatje is correct aan de database toegevoegd.<BR><BR>";


echo ("<input type=text name=\"locatie\" value='".$path.$name.".jpg' size=100><BR>");


include ("../connect.php");

$query="INSERT INTO afbeelding (locatie)";
$query=$query. "VALUES ('";
$query=$query . $_POST["locatie"]."');";
$result=mysql_query($query) or die ("FOUT: ".mysql_error());
echo ("De query is als volgt: <b>$query</b><hr>\n");
echo ("De afbeelding is succesvol toegevoegd.<br>");


}
else {
echo "Alleen JPG files!!! (of een ander bericht)";
}


?>

<html>
<form action="resize.php" method="post" enctype="multipart/form-data">
<input type="file" name="image" size="80">
<input type="submit" name="Submit" value="Submit">
</form>
</html>
 
Er zijn nog geen reacties op dit bericht.



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.