Avatar billede zacho112 Nybegynder
14. januar 2006 - 17:49 Der er 6 kommentarer og
1 løsning

upload andre filtyper end jpg

Jeg har et upload script, som kun kan uploade jpg. Jeg har prøvet via noget if else at få den til at kunne uploade .gif og .png. Men det virker ikke :S
Nu får I scriptet, uden min if else, og så vil jeg gerne hvis I vil hjælpe med, at få den til at kunne uploade de 2 andre filtyper os.
---------------- Script start ----------------
<?php
$konfiguration["upload_bibliotek"] = "./upload/";
$konfiguration["max_stoerrelse"] = "1000";

$fra = $_FILES["upfil"]["tmp_name"];
$fra2 = $_FILES["upfil"]["name"];
$til = $konfiguration["upload_bibliotek"] . $_FILES["upfil"]["name"];

$fil_stoerrelse = filesize($fra)/1024;
if($fil_stoerrelse > $konfiguration["max_stoerrelse"]) {
  die("Desværre - filen er for stor. Prøv igen");
}

if(function_exists("move_uploaded_file")) {
  move_uploaded_file($fra, $til);
$newfilename = "".rand(1, 1000000)."".$fra2."";
$newfilename2 = "upload/". $newfilename ."";
rename($til, $newfilename2);
} else {
  copy($fra, $til);
  rename($til, $newfilename2);
}
$pic = "upload/". $newfilename ."";
$thumb = "upload/small". $newfilename ."";
Thumb($pic, $thumb);

function Thumb($sourcefile, $targetfile) {
    $size = 230;
    $source_id = imageCreateFromJPEG($sourcefile);
    $source_x = imagesx($source_id);
    $source_y = imagesy($source_id);
    $delta = $size/max($source_x, $source_y);
    $dest_x = round($source_x*$delta);
    $dest_y = round($source_y*$delta);
    $target_id=imagecreatetruecolor($dest_x, $dest_y);
    imagecopyresampled($target_id,$source_id,0,0,0,0, $dest_x,$dest_y, $source_x,$source_y);
    imagejpeg($target_id,$targetfile,100);
}
?>

---------------- Script slut ----------------
Avatar billede gizp Nybegynder
14. januar 2006 - 18:46 #1
Dit script kan vel godt oploade andre formater end JPG, bare ikke lave et thumbnail der virker?

Men det skyldes jo at Thumb bliver lavet med imagejpeg, for at det skal være et PNG skal det hedde imagepng ..

-----------Eksempel fra PHP manualen---------------
imagecreate() returns an image identifier representing a blank image of size x_size by y_size.

We recommend the use of imagecreatetruecolor().

Example 1. Creating a new GD image stream and outputting an image.

<?php
header("Content-type: image/png");
$im = @imagecreate(50, 100)
    or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 255, 255, 255);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>
Avatar billede zacho112 Nybegynder
14. januar 2006 - 18:48 #2
Ja det er rigtigt at det kun er thumbnail som ikke virker, men jeg ved stadig ikke hvordan jeg skal få den til at lave imagejpg hvis det er jpg og imagepng hvis det er png osv.

Kan du hjælpe?
Avatar billede gizp Nybegynder
14. januar 2006 - 18:50 #3
Mit svar er så at du skal lave en if sætning der tjekker formatet, og så bruger den rigtige imagepng eller imagejpeg ..
Avatar billede gizp Nybegynder
14. januar 2006 - 18:54 #4
Det er nu ikke fordi jeg er så hård til det der billedehaløjsa.
- og faktisk lang tid siden jeg har lavet noget i PHP :S

Men noget:
if ($_FILES['upfil']['type'] == "image/jpeg") {
  imagejpeg($);
}
Avatar billede zacho112 Nybegynder
14. januar 2006 - 18:54 #5
Yep, som jeg skrev så har jeg prøvet, men har problemer med at få fat i den rigtige format. Har prøvet med noget lign. det her:
$type = $_FILES['userfile']['type'];
if ($type = "image/png"){
imagepng osv
}

hvis du er med, men synes ikke, at det virkede!
Avatar billede zacho112 Nybegynder
14. januar 2006 - 19:11 #6
når det er jpg hvad er forskellen så på: jpg, jpeg, pjpg og pjpeg?
Avatar billede zacho112 Nybegynder
22. juni 2006 - 20:09 #7
lukket
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