[PHP] Foto verwerken op server werkt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • MuddyMagical
  • Registratie: Januari 2001
  • Laatst online: 20:04
Ik ben bezig om een pagina te maken waarmee ik foto's in een map op mijn webserver kan verwerken in een fotoalbum.
Er bestaat al een pagina waarbij doormiddel van een form foto's worden geupload en ik heb daar de code van overgenomen. Nu loop ik alleen tegen het probleem aan dat de foto niet wordt verwerkt.

Allereerst een stukje 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
$filename = $uploaded_photo[$i];  
    $status = 'Verzonden...'; 
    
    $up_file = $upload_directory.'/'.$filename;  
    $srcimage = imagecreatefromjpeg($up_file);
    echo($srcimage);
     
    $width = imageSX($srcimage);  
    $height = imageSY($srcimage);  
    if($width <= 250 && $height <= 250)
    { 
        $t_width=$width; 
    }else{ 
        if ($height < $width)
        { 
            $t_width = 640; 
        }else{ 
            $t_width = 480; 
        }
    }
    
    $newh1= $height / $width; 
    $newh2= $newh1 * $t_width; 
    $destimage = imagecreatetruecolor($t_width,$newh2); 
    imagecopyresampled($destimage,$srcimage,0,0,0,0,$t_width,$newh2,$width,$height);  
     
    ob_start(); 
    ImageJPEG($destimage,'',75); 
    $buffer = ob_get_contents(); 
    ob_end_clean();
    $file=$save_dir.'/'.$filename; 
    $handle = fopen($file, 'ab');  
    fwrite($handle, $buffer);  
    fclose($handle); 
    $delete=$upload_directory.'/'.$filename; 
    @unlink($delete);


Dit stuk staat in een for lus die $i natuurlijk verhoogt tot de foto's zijn doorlopen.
Probleem is dat de foto voor zover ik kan zien in regel 24 nog goed wordt ingeladen. (als ik $destimage echo dan krijgt ik een resourceid terug).
Alleen daarna houdt het op. Ik heb de mappen voor de zekerheid even op CHMOD 777 gezet zodat dat het niet kan dwarszitten.

Nogmaals, dit stukje code werkt wel goed als de foto is verzonden via een form.
Zoeken op via onze vriend Google helpt niet echt. Ik krijg daar alleen maar voorbeelden van scripts om een foto via een form te uploaden.

Acties:
  • 0 Henk 'm!

  • remcotolsma
  • Registratie: December 2005
  • Laatst online: 08-09 11:11
(jarig!)
Het gaat dus niet om een afbeelding die is upgeload via een formulier? Dan zijn de namen van de variabelen $uploaded_photo en $upload_directory misschien niet zo slim gekozen.

PHP zou wel een foutmelding moeten geven als er iets fout zou zijn. Misschien moet je er even voor zorgen dat PHP alle meldingen weergeeft?

PHP:
1
error_reporting(E_ALL);

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Je controleert op diverse punten niet op fouten. Zo geeft imagecopyresampled() bijvoorbeeld een bool terug of de actie geslaagd is en zo zou je ook altijd het resultaat van fopen() moeten controleren.

{signature}