03. september 2004 - 22:23Der er
9 kommentarer og 1 løsning
upload-script
hej eksperter :)
jeg har brug for et avanceret opload script og min hjerne er lige gået lidt i baglås hvad angår programmeringen af det!
jeg har denne form jeg oploader med: <input type='file' name='billede' class='form_boks' style='width:350px'>
den skal tjekke for om filen der bliver oploaded opfylder følgende: - filen skal være enten jpg, gif eller png! (ikke blot filendelsen, men også "det indvendige") - tjekke for at filen ikke fylder mere end 30kb - ikke er mindre end 100px i bredden og 60 i højden
derefter skal den gemme filen i denne mappe /grafik/vare/ med et unikt navn! time() + tilfældig genereret 4-cifret tal, plus filendelsen den havde da den blev oploaded! (fx: 151213151-2145.jpg)
den skal tjekke for om alle tingene er udførst korrekt, og hvis det ikke er tilfældet skal den "aborte" og poppe op med en javascript alertbox!
Håber der er en der kan få det til at lykkes bedre end mig... :) - På forhånd mange tak
Jeg kan anbefale dig den her dejlig php tutorial, hvor mange af de funktioner som du har brug for er beskrivet: http://www.phpfreaks.com/tutorials/85/2.php og for at checke oploesning af grafiske filer kan du bruge den her beskrivelse http://www.php.net/gd . Haber at det saetter dig pa den rette spor.
huha... det er sgu lidt for højt sprog til min PHP-viden! :/ jeg kan godt sætte pointsne op hvis det er det der skal til for at en vil lave en "skabelon" for mig?
elskermad.dk, jeg er sa traet til at lave det idag, der er ingen points der kan holde mig vagen. I morgen hvis der ikke nogen der laver et skabelon til dig, kan vi snakke igen. God nat :).
// min. bredde og højde (minimum???) $minw = 100; $minh = 60;
// Det dir som der skal uploades til, med skråstreger $galleridir = "/images/";
// Fuld sti til galleridir $moveto = $_SERVER["DOCUMENT_ROOT"] . $galleridir;
// Hvor sendes man hen efter upload? $redir = $_SERVER["PHP_SELF"];
if (isset($_FILES["upfile"])) {
// Array med fejlbeskeder sat med $_FILES["upfile"]["error"] $arg = array(1 => "Filen er større end tilladt upload i php.ini", 2 => "Filen er større end ". round(($kb*1024)/1000) ." Kb", 3 => "Sorry, men kun en del af filen blev uploadet", 4 => "Vælg en fil til upload!");
// Array med filtyper, til brug for det endelige filnavn $filetype = array(1 => "gif", 2 => "jpg", 3 => "png");
if($_FILES["upfile"]["size"] > ($kb*1024)) { $_SESSION["besked"] = "Filen er for stor til upload!!!"; header("Location:". $redir .""); exit(); }
if(false == ($str = getimagesize($_FILES["upfile"]["tmp_name"]))) { $_SESSION["besked"] = "Valgte fil til upload er ikke en billedfil!!!"; header("Location:". $redir .""); exit(); }
if($str[2] > 3) { $_SESSION["besked"] = "Kun gif, jpg og png filer kan uploades!!!"; header("Location:". $redir .""); exit(); }
if($str[0] < $minw) { $_SESSION["besked"] = "Billedet er under ". $minw ." px. i bredden!"; header("Location:". $redir .""); exit(); }
if($str[1] < $minh) { $_SESSION["besked"] = "Billedet er under ". $minh ." px. i højden!"; header("Location:". $redir .""); exit(); }
// FILNAVN UDEN FILTYPE $newname = time() ."_". rand(1000, 9999);
// FILTYPEN $filtype = strtr($str[2], $filetype);
$upname = $newname .".". $filtype;
if(move_uploaded_file($_FILES["upfile"]["tmp_name"], $moveto . $upname)) { $_SESSION["besked"] = "Billedet er blevet uploadet!"; }else{ $_SESSION["besked"] = "Billedet kunne desværre ikke flyttes!"; }
// min. bredde og højde (minimum???) $minw = 100; $minh = 60;
// Det dir som der skal uploades til, med skråstreger $galleridir = "/images/";
// Fuld sti til galleridir $moveto = $_SERVER["DOCUMENT_ROOT"] . $galleridir;
// Hvor sendes man hen efter upload? $redir = $_SERVER["PHP_SELF"];
if (isset($_FILES["upfile"])) {
// Array med fejlbeskeder sat med $_FILES["upfile"]["error"] $arg = array(1 => "Filen er større end tilladt upload i php.ini", 2 => "Filen er større end ". round(($kb*1024)/1000) ." Kb", 3 => "Sorry, men kun en del af filen blev uploadet", 4 => "Vælg en fil til upload!");
// Array med filtyper, til brug for det endelige filnavn $filetypes = array(1 => "gif", 2 => "jpg", 3 => "png");
if(move_uploaded_file($_FILES["upfile"]["tmp_name"], $moveto . $upname)) { $_SESSION["besked"] = "Billedet er blevet uploadet!"; }else{ $_SESSION["besked"] = "Billedet kunne desværre ikke flyttes!"; }
jeg har tilrettet det således det burde passe til mig (og så jeg selv ved hvad der sker, men har et problem med at den allerede falder i min første validering :(
min kode er som følger: ------------------------------------------------------------------- <? $minw = 50; $minh = 50; $kb = 30; $byte = $kb*1024;
if ($_FILES[billede][size] > 0) { $unikname = time() ."-". rand(1000, 9999); $arg = array(1 => "Filen er større end tilladt upload i php.ini", 2 => "Filen er større end ". round(($kb*1024)/1000) ." Kb", 3 => "Sorry, men kun en del af filen blev uploadet", 4 => "Vælg en fil til upload!");
hehe jeg var vist for hurtigt ude... det lader til at virke nu! skulle lige ændre end false til true og lidt andet småting så virkede det! jeg siger mange tak, lægger du et svar? :D
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.