[PHP] Foto en thumbnail laten renamen na resize

Pagina: 1
Acties:
  • 32 views sinds 30-01-2008

  • SoeperKees
  • Registratie: December 2000
  • Laatst online: 04-10 21:05
Avond heren en dames,

ik ben met een website bezig die een foto upload systeem nodig heeft.
Nou werkt het uploaden en resizen prima, maar het renamen niet.
Met regel 49 doet hij wat hij moet doen qua renamen betreft, maar dan resized hij niet meer natuurlijk.
Op wat voor manier krijg ik alles werkend?

Dit is de code:

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

    //de mappen opgeven
    $map = "fotos/"; //foto map
    $thumb_map = "thumbs/"; //thumbnail map

    /*echo $bestands_naam ."<br>";
    echo $thumb_naam;*/
    //$bestands_naam = "image"; //naam van de foto

    //het bestand verplaatsen naar de opgegeven map en hernoemen naar de opgegeven filenaam
    //move_uploaded_file($_FILES['bestand']['tmp_name'],$map . $bestands_naam . '.' . $x);

if (isset($_FILES['userfile']))
{
        if ($_FILES['userfile']['type'] == "image/jpeg")
        
            {
                include('admin/dbconfig.php');

                $laatste_foto_id = mysql_result(mysql_query("SELECT MAX(id) FROM fotoalbum"),0);
                
                //Laatste id wordt in naam omgezet
                $id = $laatste_foto_id['id'];
                
                //Namen van foto's en thumbnails
                $bestands_naam = 0;
                $bestands_naam =  $id + 1;
                $thumb_naam = "t".$bestands_naam;
                
                //Bestand een extentie geven, in dit gevalt .jpg    
                $extentie = ".jpg";
                
                $new_foto_file = $bestands_naam . $extentie;
                $new_thumb_file = $thumb_naam . $extentie;
                
                //Hoogte en Breedte van de thumbnails
                $thumby = 124;
                $thumbx = 124;
                
                //Hoogte van de grote foto's
                $fotoy = 350;
                
                $srcfile = $_FILES['userfile']['tmp_name'];
                $locatie_foto = $map . $_FILES['userfile']['name'];
                $locatie_thumb = $map . $thumb_map .$_FILES['userfile']['name'];
                
                //Zo veranderd hij naam wel maar voert hij het resizen niet uit....
                //$locatie_foto = move_uploaded_file($_FILES['userfile']['tmp_name'], $map . $new_foto_file);

                
                list($srcx, $srcy) = getimagesize($srcfile);
                
                    if($srcx <= $srcy) 
                    {
                        $dstx = $thumbx;
                        $dsty = round($srcy / ($srcx/$thumbx));
                    }
                    
                    else                     
                    {
                        $dstx = round($srcx / ($srcy/$thumby));
                        $dsty = $thumby;                    
                    }
                
                    $bigx = round($srcx / ($srcy/$fotoy));
                    $bigy = $fotoy;
                    
                    
                    $image_thumbnail = imagecreatetruecolor($thumbx, $thumby);
                    $image_foto = imagecreatetruecolor($bigx, $bigy);
                    
                    $image = imagecreatefromjpeg($srcfile);
                    
                    imagecopyresampled ($image_thumbnail, $image, 0, 0, 0, 0, $dstx, $dsty, $srcx, $srcy);
                    imagecopyresampled ($image_foto, $image, 0, 0, 0, 0, $bigx, $bigy, $srcx, $srcy);
                    
                    // Output
                    imagejpeg($image_thumbnail, $locatie_thumb, 80);
                    imagejpeg($image_foto, $locatie_foto, 100);
            }
        
        else
        
        {
            echo "Sorry maar dit geen foto, kies ander bestand";
        }
        
}
?>

<form enctype="multipart/form-data" action="upload.php" method="post">
<p>
<input type="hidden" name="MAX_FILE_SIZE" value="1024000" />
Full foto: <input name="userfile" type="file"><br />
<br>
<input type="submit" value="Upload foto" />
</p>
</form>

[ Voor 7% gewijzigd door SoeperKees op 27-12-2006 21:16 ]


  • Pete
  • Registratie: November 2005
  • Laatst online: 31-10 12:38
Zodra je het bestand verplaats hebt wijst $srcfile niet meer naar een geldige bestand. Je zou dit makkelijk op kunnen lossen door op regel 50
PHP:
50
$srcfile=$locatie_foto;


toe te voegen.

Ook zou je kunnen overwegen het verplaatsen pas na het resizen te doen.

[ Voor 16% gewijzigd door Pete op 27-12-2006 21:22 . Reden: nettere opmaak ]

petersmit.eu


  • Pyrus
  • Registratie: November 2001
  • Laatst online: 00:10

Pyrus

Hardknock life

Gewoon je nieuwe foto moven zoals je op regel #49 doet en dan
PHP:
1
imagecopyresampled ( resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h )


waarbij de eerste een variable is om je thumbnail in vast te houden, de tweede een variabele waar je de echte in uitgelezen hebt.

Dan doe je
PHP:
1
imagejpg($thumbvariabele, "/thumb/nails/here/".$naam.".jpg");


zie de php manual voor exacte uitleg enzo :)

LinkedIn


  • SoeperKees
  • Registratie: December 2000
  • Laatst online: 04-10 21:05
Ok zal is kijken dankje.

  • SoeperKees
  • Registratie: December 2000
  • Laatst online: 04-10 21:05
Pyrus schreef op woensdag 27 december 2006 @ 21:24:
Gewoon je nieuwe foto moven zoals je op regel #49 doet en dan
PHP:
1
imagecopyresampled ( resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h )


waarbij de eerste een variable is om je thumbnail in vast te houden, de tweede een variabele waar je de echte in uitgelezen hebt.

Dan doe je
PHP:
1
imagejpg($thumbvariabele, "/thumb/nails/here/".$naam.".jpg");


zie de php manual voor exacte uitleg enzo :)
Jullie, en zeker ik, hebben niet goed gekeken naar code, alles was al aanwezig maar niet goed benoemd.

Kijk maar naar #45 en #46 :) dat moet zijn:

PHP:
1
2
$locatie_foto = $map . $new_foto_file;
$locatie_thumb = $map . $thumb_map .$new_thumb_file;

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
SoeperKees schreef op donderdag 28 december 2006 @ 00:19:
Jullie, en zeker ik, hebben niet goed gekeken naar code, alles was al aanwezig maar niet goed benoemd.
Dat krijg je als je zo'n enorme lap code post in plaats van alleen relevante stukjes ;)
Los daarvan had je dit met een beetje debuggen (desnoods tussentijdse waardes even echo-en bijv.) makkelijk zelf op kunnen lossen lijkt me.
GoT is er niet om je code te dumpen met een paar regels "probleemomschrijving" en dan te wachten tot anderen je code gedebugged hebben; we zijn geen afhaalbalie voor kant-en-klare oplossingen.

Los daarvan houden we er niet zo van als je je topic kicked binnen 24 uur; je reactie (die IMHO niet eens een post waard was; post voortaan gewoon wat het resultaat was) had je makkelijk kunnen aanvullen met de daaropvolgende post.

Overigens wél fijn dat je even de oplossing post; dan hebben anderen er misschien in de toekomst ook nog iets aan ;)

[ Voor 24% gewijzigd door RobIII op 28-12-2006 00:44 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.