Avatar billede mstorgaard Praktikant
07. juli 2009 - 12:59 Der er 4 kommentarer og
1 løsning

Billede upload har svært ved at uploade filer

Jeg har lavet et upload-script, men nogle folk har store problemer med at uploade større filer (600-1000 KB og opad). Jeg overvejer at tage en snak med webhotellet, men jeg vil godt lige høre, om der kan optimeres noget ved min kode først:

$filename = str_replace(array('æ','ø','å','Æ','Ø','Å'),array('ae','oe','aa','ae','oe','aa'),strtolower($_FILES['picture']['name']));
$tmp_name = $_FILES['picture']['tmp_name'];
$target = 'images/pictures/'.$filename;
move_uploaded_file($tmp_name, $target);
$imagepath = $filename;
$save = 'images/pictures/_thumb/'.$imagepath; //This is the new file you saving
$file = 'images/pictures/'.$imagepath; //This is the original file
list($width, $height) = getimagesize($file);
$modheight = 100;
$diff = $height / $modheight;
$modwidth = $width / $diff;
$tn = imagecreatetruecolor($modwidth, $modheight);
$image = imagecreatefromjpeg($file);
imagecopyresampled($tn, $image, 0, 0, 0, 0, $modwidth, $modheight, $width, $height);
imagejpeg($tn, $save, 100);
$picture2 = 'images/pictures/_thumb/'.$imagepath;
// Full size
$save = 'images/pictures/'.$imagepath; //This is the new file you saving
$file = 'images/pictures/'.$imagepath; //This is the original file
list($width, $height) = getimagesize($file);
$modwidth = 485;
$diff = $width / $modwidth;
$modheight = $height / $diff;
$tn = imagecreatetruecolor($modwidth, $modheight);
$image = imagecreatefromjpeg($file);
imagecopyresampled($tn, $image, 0, 0, 0, 0, $modwidth, $modheight, $width, $height);
imagejpeg($tn, $save, 100);

På forhånd tak!
Avatar billede majbom Novice
07. juli 2009 - 13:11 #1
hvad er problemet? kommer der en bestemt fejl, timer den ud eller noget helt syvende?
Avatar billede mstorgaard Praktikant
07. juli 2009 - 13:21 #2
Den timer ud for det meste, men her sidst kom denne fejl:
Fatal error: Allowed memory size of 26214400 bytes exhausted (tried to allocate 16000 bytes) in /home/virtual/xxx/public_html/gallery.php on line 3
Avatar billede majbom Novice
07. juli 2009 - 13:38 #3
der er oftest ikke nok hukommelse tilgængelig på webhotellerne til at resize halvstore billeder.

men at den timer ud, virker lidt underligt synes jeg - det må være STORE billeder så...?
Avatar billede mstorgaard Praktikant
07. juli 2009 - 13:42 #4
Jeg tror, jeg fik formuleret mig forkert.

Der går oftest 20-30 sekunder, hvorefter den melder fejl.
Avatar billede kristianiversen Nybegynder
08. juli 2009 - 11:11 #5
Det skyldes som splazz siger, at der ikke er nok RAM tilgængelig på dit webhotel til at håndtere "resizening" af billedet.

Er du heldig kan du selv sætte memory limit op, men hos de fleste webhotel-udbydere kan man ikke.

Prøv med følgende øverst i PHP siden:
ini_set("memory_limit","64M");

Er der andre metoder hvorved man kan undgå denne fejl når man benytter GD-lib funktionerne til at resize, så er jeg med på en lytter - jeg sidder selv med samme problem.

(der findes masser af information om dette emne her på exp ved at søge efter memory limit i PHP sektionen)

Mvh
Kristian
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

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