Hej jeg har prøvet at sakse lidt PHP kode samme til et billede galleri.
Men jeg opdagede at jeg bruger imagecopyresampled() funktionen til at
kopier $_FILES["upload_file"]["tmp_file"] til $resized_file og derefter
bruger jeg move_uploaded_file() eller copy() til at kopier $resized til
$_FILES["upload_file"]["name"].
Er det ikke at gentage samme proces to gange? Kan jeg ikke bare slette
move_uploaded_file() funktionen? Eller er der en forskel på de to
funktioner?
Her er lidt af galleri koden hvis det kan hjælpe til at give lidt
mening:
/** Hvor filen skal flyttes fra og til**/
$fra = $_FILES["upload_file"]["tmp_name"];
$resized = $_FILES["upload_file"]["tmp_name"];
$til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upload_file"]
["name"];
thumb($fra,$resized);
/**Vi kontrolere om filen er for stor**/
$file_size = filesize($fra)/1024;
if ($file_size > $konfiguration["max_stoerelse"]){
die ("Desværre Billedet fylder for meget, billedet mp kun
fylde" .
$konfiguration["max_stoerelse"] . "kByte. Billedet du prøver at
uploade fylder" .
$file_size . "kByte");
}
/**Undersoeger om filen er et billede, hvis TRUE så uploades billedet**/
if (typeCheck($_FILES["upload_file"]["type"])){
if (function_exists("move_uploaded_file")){
move_uploaded_file($resized, $til);
} else {
copy($resized, $til);
}
}
/*****************************************************
** Resize funktion **
*****************************************************/
function thumb($sourcefile,$targetfile){
$temp = getimagesize($sourcefile);
if ($temp[0]<480) {
$size = $temp[0];
} else {
if ($temp[0]>$temp[1]) $size = 480;
if ($temp[0]<$temp[1]) $size = 400;
$file_type = $_FILES["upload_file"]["type"];
/**Hvis billedet er af formatet JPEG bruges nedenstaaende script**/
if ($file_type == "image/pjpeg" or $file_type == "image/jpeg"){
$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);
}else {
/**Hvis billedet er af formatet PNG bruges nedenstaaende script**/
if ($_FILES["upload_file"]["type"]=="image/x-png"){
$source_id = imageCreateFromPng($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);
imagepng($target_id,$targetfile,100);
}
}
}
}
|