09. maj 2006 - 14:38Der er
17 kommentarer og 1 løsning
Upload billede
Nedenstående er til at resize'e og uploade et billede. Det virker bare ikke. Er lidt usikker på denne kommando "$filename = $_FILES['userfile'];" Nogen der kan se en løsning?
<? session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>[Ingen titel]</title> <meta name="Generator" content="Stone's WebWriter 4"> <meta name="Author" content="Steen Hjelmstrand" />
</head> <body> <?
if (isset($status)) {
$sti2="upload/test.jpg";
//chmod($sti, 0766);
//laver thumbnail
// The file $filename = $_FILES['userfile']; echo $filename;
// Set a maximum height and width $width = 100; $height = 50;
// Content type header('Content-type: image/jpeg');
// Get new dimensions list($width_orig, $height_orig) = getimagesize($filename);
Det er vel heller ikke nok med bare navnet, da filen jo først bliver uploaded efter at være blevet resized. Altså den skal vel vide hvor filen ligger for at resize den inden den bliver lagt op på serveren.
/* Hvor flytter vi fra og til */ $fra = $_FILES["upfil"]["tmp_name"]; $til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"];
/* Check PHP-version */ list($major, $minor, $rev) = explode(".", phpversion()); if($major < 4){ die("Jeg kan kun arbejde med PHP 4.0.0 eller derover"); }
/* Skab de "moderne" arrays hvis vi arbejder med en aeldre PHP */ if($minor < 1){ $_FILES = $HTTP_POST_FILES; $_POST = $HTTP_POST_VARS; $_SERVER = $HTTP_SERVER_VARS; }
/* Accepterer vi filens stoerrelse? */ $fil_stoerrelse = filesize($fra)/1024; if($fil_stoerrelse > $konfiguration["max_stoerrelse"]){ die("Desværre - filen er for stor. Jeg accepterer kun " . $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " . ceil($fil_stoerrelse, 1) . " kb"); }
/* Hvor flytter vi fra og til */ $fra = $_FILES["upfil"]["tmp_name"]; $til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"];
/* Check PHP-version */ list($major, $minor, $rev) = explode(".", phpversion()); if($major < 4){ die("Jeg kan kun arbejde med PHP 4.0.0 eller derover"); }
/* Skab de "moderne" arrays hvis vi arbejder med en aeldre PHP */ if($minor < 1){ $_FILES = $HTTP_POST_FILES; $_POST = $HTTP_POST_VARS; $_SERVER = $HTTP_SERVER_VARS; }
/* Accepterer vi filens stoerrelse? */ $fil_stoerrelse = filesize($fra)/1024; if($fil_stoerrelse > $konfiguration["max_stoerrelse"]){ die("Desværre - filen er for stor. Jeg accepterer kun " . $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " . ceil($fil_stoerrelse, 1) . " kb"); }
/* Hvor flytter vi fra og til */ $fra = $_FILES["upfil"]["tmp_name"]; $til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"];
/* Check PHP-version */ list($major, $minor, $rev) = explode(".", phpversion()); if($major < 4){ die("Jeg kan kun arbejde med PHP 4.0.0 eller derover"); }
/* Skab de "moderne" arrays hvis vi arbejder med en aeldre PHP */ if($minor < 1){ $_FILES = $HTTP_POST_FILES; $_POST = $HTTP_POST_VARS; $_SERVER = $HTTP_SERVER_VARS; }
/* Accepterer vi filens stoerrelse? */ $fil_stoerrelse = filesize($fra)/1024; if($fil_stoerrelse > $konfiguration["max_stoerrelse"]){ die("Desværre - filen er for stor. Jeg accepterer kun " . $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " . ceil($fil_stoerrelse, 1) . " kb"); }
/* Hvor flytter vi fra og til */ $fra = $_FILES["upfil"]["tmp_name"]; $til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"];
/* Check PHP-version */ list($major, $minor, $rev) = explode(".", phpversion()); if($major < 4){ die("Jeg kan kun arbejde med PHP 4.0.0 eller derover"); }
/* Skab de "moderne" arrays hvis vi arbejder med en aeldre PHP */ if($minor < 1){ $_FILES = $HTTP_POST_FILES; $_POST = $HTTP_POST_VARS; $_SERVER = $HTTP_SERVER_VARS; }
/* Accepterer vi filens stoerrelse? */ $fil_stoerrelse = filesize($fra)/1024; if($fil_stoerrelse > $konfiguration["max_stoerrelse"]){ die("Desværre - filen er for stor. Jeg accepterer kun " . $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " . ceil($fil_stoerrelse, 1) . " kb"); }
Tak, det er meget flot. Men kan du forklare hvorfor den skriver alt det, når man laver 2x resize i træk? For jeg vil gerne have lavet et lille billede hvor højden er 90, og så et større billede hvor højden er 400, hvis højden på brugerens billede er større end 400px. Altså så den laver 2 størrelser af billedet når man uploader.
Hvis du nu skulle have lyst, så er der et tillægsspørgsmål. Jeg har ændret taktik lidt. Vil kun have 1 stort billede uploadet, og der hvor jeg så skal bruge billedet i et mindre format, vil jeg resize "on the fly". Altså bare vise output'et uden at gemme det. Kan der laves lidt om i koden, så jeg bare kan vise output'et af en resize i stdet for at uploade? På forhånd mange tak.
Synes godt om
Ny brugerNybegynder
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.