03. november 2005 - 20:39Der er
13 kommentarer og 1 løsning
Billede upload
Hej Eksperter.
Jeg står og mangler et billede upload der kan følgende:
Tage gif, jpg, bmp, og de andre normale billede formater. Billedet må selvfølgelig ikke kunne uploade andet end billedefiler.
Billederne der bliver uploadet må ikke fylde over 1 mb. Når billederne bliver uploadet skal de have en time(), således at der ikke går kuk i det på ftp serveren. Altså noget lignende "billeder/".time().rand(0000,9979);...
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
if ($img_size > 0) { $byte = 1048576; $arg = array(1 => "Filen er større end tilladt upload i php.ini", 2 => "Filen er større end ". round($byte/1024) ." Kb", 3 => "Beklager, men kun en del af filen blev uploadet", 4 => "Vælg en fil til upload!");
if (empty($source) || empty($felt["error"])) { if (getimagesize($fra)) { if ($str[2] <= 3) { if ($img_size <= $byte) { if (move_uploaded_file($fra, $til)) { $forhold = $str[1]/$str[0];
mysql_query("insert into mysqltabel (url,tidspunkt,ip,height,height_thumb,width,width_thumb,size,size_thumb,type,navn,beskrivelse,format) values ('$upname','$phptime','$ip','$height','$height_thumb','$width','$width_thumb','$size','$size_thumb','$type','$navn','$beskrivelse','$filtypen')") or die(mysql_error());
$id = mysql_insert_id(); } else { $fejl = "Billedet kunne ikke oploades... Prøv igen!"; } } else { $fejl = "Filen var for stor til opload..."; } } else { $fejl = "Kun jpg, gif og png billedefiler kan oploades!"; } } else { $fejl = "Filen du oploadede er ikke et billede!"; } } else { $fejl = strtr($felt["error"], $arg); } }
$allowPics med getimagesize er ikke sikkert nok. Man skal ubetinget teste på den extension filen får på serveren. Ellers er der rotter på serveren hurtigere end du kan tælle til 1. ;)
Jah, det er den almindelige antagelse. Jeg vil ikke præsentere et "proof on concept", for der er umådeligt mange upload-scripts, der ikke tjekker for extension. Og under alle omstændigheder er det bedst med en dobbeltgardering, li'som når man går både med paryk og briller (eller hvordan det nu er).
Og man kan nemig ikke teste i en browser, om det virker. Dem, der hacker sig ind vil netop ikke bruge en browser. Snu folk, dem der.
Måske det kan gøres en smule mere simpelt! Scriptet herover laver en resize af billedet, så man f.eks. ikke gemmer fullsize pics! Den del kan rippes, og fejl håndtering og lign kan også fjernes.
Det nemmeste du næsten kan gøre, er at starte med at læse koden fra toppen... Er der en funktion du ikke ved hvad gør, så slå den op i php manualen. Kan hentes her: http://www.php.net/download-docs.php Det er faktisk vejen frem. :o)
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.