26. maj 2008 - 16:23Der er
11 kommentarer og 1 løsning
Billedeupload funktion som laver thumbs også
Hej,
Ville gerne høre hvordan man laver en billed-upload funktion, som udover at uploade billeder, også laver en thumbnail på 100x100 px med "thumb_" foran navnet og smider i samme mappe?
Altså når man uploader et billede der hedder hej.jpg, vil den på samme tid lave et thumbnail som hedder thumb_hej.jpg.
Nogen der kan hjælpe med det? Gerne med forklaring så jeg kan se, hvad der sker :)
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
jakobdo --> Har kigget det igennem. Hvordan får jeg implementeret resize funktionen i uploadsciptet? Og vil den på samme tid dublere billedet og ændre størrelsen på thumb_xxx.xxx-billedet? :)
//Vi flytter filen fra tmp til vores UPLOADDIR if(move_uploaded_file($_FILES['myFile']['tmp_name'],$uploadDir . basename($_FILES['myFile']['name']))) { echo '<h3 style="color:green;">File ('.basename($_FILES['myFile']['name']).') uploaded succesfully</h3>'; }
Hvis du så tilføjer: resize($uploadDir . basename($_FILES['myFile']['name']), $uploadDir . 'thumb_' . basename($_FILES['myFile']['name']), 200,200); Lige over echo, så resizer den.
jakobdo---> Er lidt på bar bund. Er nemlig lige starte med php, og det er kun på et meget basic niveau. Så det meste, af hvad der foregår er noget der flyver forbi. :)
Kunne jeg bede om en færdiglavet kode, med forklaringer i koden eller ved siden af, så jeg kan få en forståelse for det? :)
<?php $uploadDir = 'upload/'; //Bibliotek hvor filer uploades til - husk chmod 777 $allowedFileTypes = array('jpg','gif','png'); //Hvilke filer vil vi acceptere bliver uploadet?
//Er der trykket på Upload file knappen? if(isset($_POST['myUpload'])) { //Har vi en fil? if(is_uploaded_file($_FILES['myFile']['tmp_name'])) { //Filendelse $extension = strtolower(pathinfo($_FILES['myFile']['name'],PATHINFO_EXTENSION));
//Er filen en af de filer vi gerne vil have? if(in_array($extension,$allowedFileTypes)) { //Vi flytter filen fra tmp til vores UPLOADDIR if(move_uploaded_file($_FILES['myFile']['tmp_name'],$uploadDir . basename($_FILES['myFile']['name']))) { if(resize($uploadDir . basename($_FILES['myFile']['name']), $uploadDir . 'thumb_' . basename($_FILES['myFile']['name']), 200,200)){ echo '<h3 style="color:red;">Error - unable to resize file: '.basename($_FILES['myFile']['name']).'</h3>'; }else{ echo '<h3 style="color:green;">File ('.basename($_FILES['myFile']['name']).') uploaded and resized succesfully</h3>'; } } else { echo '<h3 style="color:red;">Error - unable to upload file: '.basename($_FILES['myFile']['name']).'</h3>'; } } else { echo '<h3 style="color:red;">Wrong filetype, allowed filetypes are: ('.implode(',',$allowedFileTypes).')</h3>'; } } else { echo '<h3 style="color:red;">No file selected<h3>'; } }
jakobdo --> Super, det virker som det skal. Den finder let ud af at resize og smide det rigtige billede op. Men får følgende fejl alligevel "Error - unable to resize file:".
Det kunne tænktes at jeg bare kunne slette denne linje, men kunne da være rart at fejlen kom frem, når der virkelig er en fejl :)
Lige en sidste ting, kan det lade sig gøre at thumbnailsene bliver smidt ind i en undermappe i galleri-mappen som hedder thumb?
Koden som den ser ud nu:
<?php $uploadDir = 'galleri/'; //Bibliotek hvor filer uploades til - husk chmod 777 $allowedFileTypes = array('jpg','gif','png'); //Hvilke filer vil vi acceptere bliver uploadet?
//Er der trykket på Upload file knappen? if(isset($_POST['myUpload'])) { //Har vi en fil? if(is_uploaded_file($_FILES['myFile']['tmp_name'])) { //Filendelse $extension = strtolower(pathinfo($_FILES['myFile']['name'],PATHINFO_EXTENSION));
//Er filen en af de filer vi gerne vil have? if(in_array($extension,$allowedFileTypes)) { //Vi flytter filen fra tmp til vores UPLOADDIR if(move_uploaded_file($_FILES['myFile']['tmp_name'],$uploadDir . basename($_FILES['myFile']['name']))) { if(resize($uploadDir . basename($_FILES['myFile']['name']), $uploadDir . 'thumb_' . basename($_FILES['myFile']['name']), 100,100)){ echo '<h3 style="color:green;">File ('.basename($_FILES['myFile']['name']).') uploaded and resized succesfully</h3>'; }else{ echo '<h3 style="color:red;">Error - unable to resize file: '.basename($_FILES['myFile']['name']).'</h3>'; } } else { echo '<h3 style="color:red;">Error - unable to upload file: '.basename($_FILES['myFile']['name']).'</h3>'; } } else { echo '<h3 style="color:red;">Wrong filetype, allowed filetypes are: ('.implode(',',$allowedFileTypes).')</h3>'; } } else { echo '<h3 style="color:red;">No file selected<h3>'; } }
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.