Avatar billede neonman Nybegynder
10. juni 2006 - 22:45 Der er 10 kommentarer og
1 løsning

Upload af billeder fejler som tider hvorfor

Sider og tænker lidt på hvorfor det somtider fejler et resize script jeg har lavet med GdLib det er mest når folk tager det med webcame eller mobiler telefoner :/ er der nogen der har en forklaring på det?

da det er remlig provokeren nu hvor jeg har et commenty der faktisk godt skulle være muligt folk kan uploade med eks. webcame og mobil billedere.
Avatar billede jakobdo Ekspert
12. juni 2006 - 17:21 #1
Har du nogen ide om hvor i upload-processen din kode "fejler"?
Avatar billede jakobdo Ekspert
12. juni 2006 - 17:30 #2
Eller steder hvor du kalder en funktion, f.eks. move_uploaded_file(), resize() eller hvad du måtte gøre.
Tjek om kaldet går godt.
Avatar billede neonman Nybegynder
13. juni 2006 - 00:01 #3
Problemet ligger i at det ikke er mig der oplever disse fejl men mine brugere... så det er faktisk lidt belasten :( så ja.... er virklig på skideren lige pt.
Avatar billede jakobdo Ekspert
13. juni 2006 - 07:06 #4
Prøv evt at smid koden du bruger til upload ?
Avatar billede neonman Nybegynder
13. juni 2006 - 08:59 #5
<?
include('../mysql.php');

$Upload_FileName = '../includes/images/profil_billeder/'. $_GET[Images] .'.jpg';

if (!file_exists('../tmp/'. $_GET['tmp_mapname']))
    mkdir('../tmp/'. $_GET['tmp_mapname']);

$upload_bibliotek = '../tmp/'. $_GET['tmp_mapname'] .'/'. $_GET[Images] .'.jpg';

$res = mysql_query("SELECT * FROM brugere WHERE id = '". $_GET[Images] ."'");
$row = mysql_fetch_array($res);

if ($row['BilledeGodkendt'] == 0 AND $_GET[IgonoreOk] == 0)
{
    $Upload_FileName = '../icons/none.jpg';   
    $upload_bibliotek = '../tmp/'. $_GET['tmp_mapname'] .'/none.jpg';
}

$fra = $Upload_FileName;
$til = $upload_bibliotek;

$size = getimagesize($Upload_FileName);

if ($_GET[W])
    $BigImgSize_W = $_GET[W];
else
    $BigImgSize_W = "N/A";
   
if ($_GET[H])
    $BigImgSize_H = $_GET[H];
else
    $BigImgSize_H = "N/A";

   
if ($size[0] >= $BigImgSize_W AND $BigImgSize_W != "N/A") {
    $new_w = $BigImgSize_W;
    $Hojde = $new_w / $size[0] * $size[1];
    $new_h = $Hojde;
}
elseif ($size[1] >= $BigImgSize_H AND $BigImgSize_H != "N/A") {
    $new_h = $BigImgSize_H;
    $Brade = $new_h / $size[1] * $size[0];
    $new_w = $Brade;
}
else {
    $new_w = $size[0];
    $new_h = $size[1];
}

$dst_img = ImageCreateTrueColor($new_w,$new_h);
$src_img = ImageCreateFromJpeg($Upload_FileName);

ImageCopyResampled($dst_img,$src_img,0,0,0,0,$new_w,$new_h,ImageSX($src_img),ImageSY($src_img));
ImageJpeg($dst_img, $til);

header('Expires: Mon, 26 Jul 1997 05:00:00 GMT') ;
// always modified
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT') ;
// HTTP/1.1
header('Cache-Control: no-store, no-cache, must-revalidate') ;
header('Cache-Control: post-check=0, pre-check=0', false) ;
// HTTP/1.0
header('Pragma: no-cache') ;

header("Content-type: image/jpeg");
readfile($upload_bibliotek);
imagedestroy($dst_img);
?>


Sådan her ved dog ikke om der er nået jeg har glemt.
Avatar billede jakobdo Ekspert
13. juni 2006 - 09:05 #6
Følgende funktioner antager du går godt:

mkdir('../tmp/'. $_GET['tmp_mapname']);
$res = mysql_query("SELECT * FROM brugere WHERE id = '". $_GET[Images] ."'") or die(mysql_error());
ImageCopyResampled($dst_img,$src_img,0,0,0,0,$new_w,$new_h,ImageSX($src_img),ImageSY($src_img));
ImageJpeg($dst_img, $til);
$dst_img = ImageCreateTrueColor($new_w,$new_h);
$src_img = ImageCreateFromJpeg($Upload_FileName);

Disse funktioner bør du tjekke at resultatet er hvad du ønsker.

Og så bør du også bruge: $_GET['W'] og $_GET['H'], og ikke: $_GET[W] og $_GET[H]
Avatar billede neonman Nybegynder
13. juni 2006 - 09:25 #7
Hvordan vil du tjecke om disse funger?

$res = mysql_query("SELECT * FROM brugere WHERE id = '". $_GET[Images] ."'") or die(mysql_error());
ImageCopyResampled($dst_img,$src_img,0,0,0,0,$new_w,$new_h,ImageSX($src_img),ImageSY($src_img));
ImageJpeg($dst_img, $til);
$dst_img = ImageCreateTrueColor($new_w,$new_h);
$src_img = ImageCreateFromJpeg($Upload_FileName);

altså om det er korekt?
Avatar billede jakobdo Ekspert
13. juni 2006 - 12:04 #8
$res = mysql_query("SELECT * FROM brugere WHERE id = '". $_GET[Images] ."'") or die(mysql_error());
Her har jeg tilføjet die(mysql_error());

if(ImageCopyResampled($dst_img,$src_img,0,0,0,0,$new_w,$new_h,ImageSX($src_img),ImageSY($src_img)))
echo "Det gik godt";
else
echo "Det gik ikke godt";

Sådan kan du tjekke stort set det fleste funktioner.
Dog bør du ikke skrive fejlen, men evt. sende en email til admin/dig med funktion som fejler.
Avatar billede neonman Nybegynder
26. august 2006 - 09:53 #9
Okay :) takker... gider du smide et svar så du kan få lidt points.
Avatar billede jakobdo Ekspert
26. august 2006 - 10:24 #10
Svar!
Avatar billede jakobdo Ekspert
26. august 2006 - 16:46 #11
Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester