Billedupload problemmer v. brug af class.upload.php fra verot.net
Hej, jeg har siddet i mange timer og prøvet at regne denne fejl ud, men uden held.Jeg laver en hjemmeside hvor det er muligt at uploade billeder til et billedgalleri, ved hjælp af den geniale class: "class.upload.php" fra siden http://www.verot.net/.
Jeg har imidlertid nogle problemer med at uploade store billeder...
Jeg har prøvet både lokalt og på web-server at uploade, og scriptet virker godt, så længe at filen ikke er for stor/bred/høj (?)
Alle små billeder virker fint, den uploader, indsætter i db og det hele!
Jeg har prøvet ALT muligt: rettet alt hvad jeg har kunne læse mig til på nettet om begrænsninger af filstørrelser, der kan rettes i php.ini filen.
Har slettet og omskrevet scriptet fuldstændigt to gange, på helt forskellige måder osv.
Men intet hjælper. Der udskrives ingen fejl, men man kan se at efterfølgende scripts under billed-upload scriptet, ikke bliver eksekveret når billed-upload scriptet fejler, da det nederste af min side ikke bliver vist...
Her har I koden:
### FORM
<form enctype="multipart/form-data" method="POST" action="">
<table cellpadding="0" cellspacing="5">
<tr>
<td>
Vælg et billede du vil uploade til billedgalleriet<br />
<i><b>Bemærk: Billederne må max. fylde 2MB</b></i><br />
<br />
</td>
</tr>
<tr>
<td>
<input type="file" name="img_file" />
</td>
</tr>
<tr>
<td>
<input type="submit" name="submit_upload_img" value="Upload" id="button" />
</td>
</tr>
</table>
</form>
### SCRIPT
<?php
# Slår fejl rapporteing af alle fejl til
error_reporting(E_ALL);
if(isset($_POST['submit_upload_img']))
{
# Opretter billedoplysninger
$img = $_FILES['img_file'];
$img_name = $img['tmp_name'];
$img_size = getimagesize($img_name);
$img_x = $img_size[0];
$img_y = $img_size[1];
# Finder fil endelse (f.eks. ".jpg")
$exst = explode('.', $img['name']);
$allowed = array('jpg', 'JPG', 'jpeg', 'JPEG', 'png', 'PNG', 'gif', 'GIF');
if($img['size'] < 2000000)
{
# Billedet er under 2MB
if(in_array($exst[1], $allowed))
{
# Billedet er den rigtige filtype
$foo = new Upload($img);
if($foo->uploaded)
{
# Opretter thumb
$foo->image_convert = 'jpg';
$foo->image_resize = true;
$foo->image_x = 120;
$foo->image_y = 90;
# Uploader thumbnail
$foo->process('./img/gallery/thumb/');
$thumb_name = $foo->file_dst_name;
if($foo->uploaded)
{
# Thumbnail er uploadet, upload normalbillede
$foo->image_convert = 'jpg';
if($img_x >= 700 && $img_y <= 500)
{
# Billedet er for bredt
$foo->image_resize = true;
$foo->image_x = 500;
$foo->image_ratio_y = true;
}
elseif($img_x <= 700 && $img_y >= 500)
{
# billedet er for højt
$foo->image_resize = true;
$foo->image_y = 500;
$foo->image_ratio_x = true;
}
elseif($img_x >=700 && $img_y >= 500)
{
# billedet er både for bredt og højt, sæt til 700x500px
$foo->image_resize = true;
$foo->image_x = 700;
$foo->image_y = 500;
}
# Tilføj tekst
$foo->image_text = 'Firmanavn';
$foo->image_text_direction = 'h';
$foo->image_text_background = '#000000';
$foo->image_text_font = 1;
$foo->image_text_position = 'BL';
$foo->image_text_padding_x = 5;
$foo->image_text_padding_y = 2;
# Upload
$foo->process('./img/gallery/normal/');
$orig_name = $foo->file_dst_name;
if($foo->uploaded)
{
# Alt gik godt
$query = "INSERT INTO cb_gallery (thumb, normal) VALUES ('" . $thumb_name . "', '" . $orig_name . "')";
$result = mysql_query($query);
# Sletter midl. filer
$foo->Clean();
$msg = 'Billedet er korrekt tilføjet til galleri siden';
}
else
{
# Der opstod en fejl ved upload af normal billede
$msg = 'Der skete en fejl under upload af normal billedet';
}
}
else
{
# Thumbnail billede upload fejlede
$msg = 'Fejl under upload af thumbnail';
}
}
else
{
# Billede blev ikke uploadet
$msg = 'Fejl under upload';
}
}
else
{
# Forkert filtype
$msg = 'Forkert filtype';
}
}
else
{
# For stort billede
$msg = 'Billedet er for stort';
}
echo '<p class="msg">' . $msg . '</p>';
}
?>
...Det skal lige siges at alle funktionerne i mit script - f.eks. resize funktionerne - virker så længe billedet ikke overskrider en (ukendt) højde, bredde eller filstørrelse
Håber meget at der er én der kan hjælpe!
Mvh
Kasper Pedersen