30. oktober 2003 - 10:42Der er
15 kommentarer og 1 løsning
Multiple file upload.
Vha. nedenstående script uploader jeg et billed, laver en thumb og skriver data til databasen. Jeg kunne rigtigt godt tænke mig at kunne uploade flere filer på en gang. Jeg forestiller mig at man vha. en variable angiver hvor mange filer der skal kunne uploades (så det er nemt at ændre), men da jeg er relativ ny udi PHP verdenen, er jeg lidt usikker på hvordan. Jeg tror nu nok at jeg kan lave et loop der skriver x antal felter i formen, men hvordan skal jeg navngive dem, og hvordan sikrer jeg mig at scriptet efterfølgende uploader alle filerne og i øvrigt ignorerer eventuelle blanke felter.
$updir = "upload/"; // Definer stien til dit oploadbibliotek $aft = array('image/jpeg','image/pjpeg','image/png'); // De filtyper der kan uploades
/* Function checkgd() checks the version of gd, and returns "yes" when it's higher than 2 */ function checkgd(){ $gd2=""; ob_start(); phpinfo(8); $phpinfo=ob_get_contents(); ob_end_clean(); $phpinfo=strip_tags($phpinfo); $phpinfo=stristr($phpinfo,"gd version"); $phpinfo=stristr($phpinfo,"version"); preg_match('/\d/',$phpinfo,$gd); if ($gd[0]=='2'){$gd2="yes";} return $gd2; }
/* Function createthumb($name,$filename,$new_w,$new_h, $updir) creates a resized image variables: $name Original filename $filename Filename of the resized image $new_w width of resized image $new_h height of resized image */ function createthumb($name,$filename,$new_w,$new_h,$updir){
global $gd2; $system=explode(".",$name);
if (preg_match("/jpg|jpeg/",$system[1])){$src_img=imagecreatefromjpeg($name);} if (preg_match("/png/",$system[1])){$src_img=imagecreatefrompng($name);} $old_x=imageSX($src_img); $old_y=imageSY($src_img); if ($old_x > $old_y) { $thumb_w=$new_w; $thumb_h=$old_y*($new_h/$old_x); } if ($old_x < $old_y) { $thumb_w=$old_x*($new_w/$old_y); $thumb_h=$new_h; } if ($old_x == $old_y) { $thumb_w=$new_w; $thumb_h=$new_h; } if ($gd2==""){ $dst_img=ImageCreate($thumb_w,$thumb_h); imagecopyresized($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y); }else{ $dst_img=ImageCreateTrueColor($thumb_w,$thumb_h); imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y); } if (preg_match("/png/",$system[1])){ imagepng($dst_img,$filename); } else { imagejpeg($dst_img,$filename); } imagedestroy($dst_img); imagedestroy($src_img); }
if (empty($_REQUEST['fil'])) { echo "Du skal vælge en fil"; } else {
if (in_array($_FILES['fil']['type'],$aft)) { if (move_uploaded_file($_FILES['fil']['tmp_name'], $newfilename)) { $gd2=checkgd(); createthumb($newfilename, $newthumb,100,100,$updir);
$imginfo = getimagesize($newfilename); $imgwidth = $imginfo[0]; //bredde i pixels $imgheight = $imginfo[1]; //højde i pixels $imgtype = $imginfo[2]; //jpg, gif, bmp osv $imghtml = $imginfo[3]; //height="yyy" width="xxx" - for use directly in html
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.
Jeg har fået løst upload problemet, og det virker uden problemer. Lige bortset fra at jeg ikke kan få den til at ignorere tomme felter. Jeg har eksempelvis uploaded to billeder, og får derfor følgende besked:
Filtypen er ikke korrekt!Filtypen er ikke korrekt!Filtypen er ikke korrekt!
if (empty($_REQUEST['fil'])) { echo "Du skal vælge en fil"; } else {
if (in_array($_FILES['fil']['type'][$i],$aft)) { if (move_uploaded_file($_FILES['fil']['tmp_name'][$i], $newfilename)) { $gd2=checkgd(); createthumb($newfilename, $newthumb,100,100,$updir);
$imginfo = getimagesize($newfilename); $imgwidth = $imginfo[0]; //bredde i pixels $imgheight = $imginfo[1]; //højde i pixels $imgtype = $imginfo[2]; //jpg, gif, bmp osv $imghtml = $imginfo[3]; //height="yyy" width="xxx" - for use directly in html
if (empty($_REQUEST['fil'])) { echo "Du skal vælge en fil"; } else {
if (in_array($_FILES['fil']['type'][$i],$aft)) { if (move_uploaded_file($_FILES['fil']['tmp_name'][$i], $newfilename)) { $gd2=checkgd(); createthumb($newfilename, $newthumb,100,100,$updir);
$imginfo = getimagesize($newfilename); $imgwidth = $imginfo[0]; //bredde i pixels $imgheight = $imginfo[1]; //højde i pixels $imgtype = $imginfo[2]; //jpg, gif, bmp osv $imghtml = $imginfo[3]; //height="yyy" width="xxx" - for use directly in html
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.