/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Auto resize billede gdlib
Fra : lars pedersen


Dato : 30-11-07 13:34

Hejsa
er der en venlig sjæl som kan hjælpe mig lidt, jeg er ved at lave
et site hvor brugeren kan uploade et billede, men jeg har et
problem vedr. uploadet.
det er lavet med en "form", og jeg har encrypt/form, med i den.
ligeledes er mit er destination lavet skrivbar

her er scriptet:

list($bredde, $hojde) =
getimagesize($_FILES['file']['tmp_name']);
$forhold = $hojde/$bredde;
if($type == "0") {
$bredde_ny = 759;
} else {
$bredde_ny = 498;
}
$hojde_ny = round($bredde_ny*$forhold);
$source = imagecreatefromjpeg($_FILES['file']['tmp_name']);
$destination = imagecreate($bredde_ny, $hojde_ny);
imagecopyresized($destination, $source, 0, 0, 0, 0, $bredde_ny,
$hojde_ny, $bredde, $hojde);
$ext = strtolower(end(explode(".", $_FILES['file']['name'])));
$date = date('d-m-Y-His');
$filename = "images_." . $date . "." . $ext;
$dst = "../uploadet_billeder/" . $filename;
imagejpeg($destination, $dst);

der kommer godt nok en fil op, som hedder"images_(dato/tid)men
der er ingen ext. som jo skulle ha været jpg.
men derimod kommer der en tom fil, ligner en txt fil.
men desværre er det intet billede.

på forhånd tak
Lars


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Martin (02-12-2007)
Kommentar
Fra : Martin


Dato : 02-12-07 07:07

lars pedersen wrote:
> Hejsa
> er der en venlig sjæl som kan hjælpe mig lidt, jeg er ved at lave
> et site hvor brugeren kan uploade et billede, men jeg har et
> problem vedr. uploadet.
> det er lavet med en "form", og jeg har encrypt/form, med i den.
> ligeledes er mit er destination lavet skrivbar

Nu ved jeg ikke hvad du mener med encrypt/form, men du skal ihvertfald
have dette med i dit formtag
enctype="multipart/form-data"

>
> her er scriptet:
>
> list($bredde, $hojde) =
> getimagesize($_FILES['file']['tmp_name']);

start lige med en
var_dump($_FILES['file']['tmp_name']);
og evt også lige en dump på $bredde og $hojde, for at se om det er de
korrekte tal.

Jeg plejer først at kopiere filen til din egen mappe med

if(is_uploaded_file($_FILES['file']['tmp_name'])) {
if(!move_uploaded_file($_FILES['file']['tmp_name'], $dir .
$_FILES['file']['name'])) {
if(!copy($_FILES['file']['tmp_name'], $dir .
$_FILES['file']['name'])) {
die('Could not upload...');
}
}
}

også først derfra begynde at arbejde med filen.


> $forhold = $hojde/$bredde;
> if($type == "0") {
> $bredde_ny = 759;
> } else {
> $bredde_ny = 498;
> }
> $hojde_ny = round($bredde_ny*$forhold);
> $source = imagecreatefromjpeg($_FILES['file']['tmp_name']);
> $destination = imagecreate($bredde_ny, $hojde_ny);
> imagecopyresized($destination, $source, 0, 0, 0, 0, $bredde_ny,
> $hojde_ny, $bredde, $hojde);
> $ext = strtolower(end(explode(".", $_FILES['file']['name'])));

var_dump($ext); // Giver den det rigtige resultat?

> $date = date('d-m-Y-His');
> $filename = "images_." . $date . "." . $ext;

var_dump($filename); // Korrekt navn?

> $dst = "../uploadet_billeder/" . $filename;

Nogle servere vil meget gerne have den absolutte server sti
(noget ala /www/dinmappe/www/uploadet_billeder)
Kan hentes via $_SERVER['DOCUMENT_ROOT']

> imagejpeg($destination, $dst);
>
> der kommer godt nok en fil op, som hedder"images_(dato/tid)men
> der er ingen ext. som jo skulle ha været jpg.
> men derimod kommer der en tom fil, ligner en txt fil.
> men desværre er det intet billede.

Et tomt billede kan tyde på
den ikke har haft et billede at starte med at arbejde med, så bliver der
bare oprettet et dejligt sort billede.

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste