12. februar 2007 - 15:20
Der er
10 kommentarer og 1 løsning
Upload, thumbnail og stier i mysql
Hejsa alle sammen. Er der nogen som kan anbefalde et script som kan følgende: Uploade orginal billede i en mappe Kopier orginal billede og lave en thumbnail til anden mappe og smide data'erne i en mysql ? Jeg gir gerne 200 point hvis en allerede har lavet et eller gerne vil lave et. Jeg kan evt. selv for den til at smide data'erne i mysql. Rasmus
Annonceindlæg fra Barco
12. februar 2007 - 17:33
#1
Skal du bruge hele koden? Eller har du noget at starte på selv?
12. februar 2007 - 17:51
#2
Altså det der er det væreste er faktisk at lave thumbnailen Jeg har brugt denne en del gange: <?php $maxSize = 512000; //512 kb $allowPics = array("jpg", "jpeg"); $uploadDir = "/upload/"; $better_token = md5(uniqid(rand(), true)); if($_FILES['thumb']['size'] > 0 && $_FILES['fullsize']['size']) { $thumbfile = getcwd() . $uploadDir . $_FILES['thumb']['name']; $fullfile = getcwd() . $uploadDir . $_FILES['fullsize']['name']; if($_FILES['thumb']['size'] > $maxSize && $_FILES['fullsize']['size'] > $maxSize) { echo "Pics above 512KB not allowed!"; echo "<br>"; echo "<a href='upload.php'>Try again</a>"; exit(); } if (file_exists($thumbfile) && file_exists($fullfile)) { echo "The file $filename exists"; echo "<br>"; echo "<a href='upload.php'>Try again</a>"; exit(); } else { echo "The file $filename does not exist"; } $extThumb = strtoupper(end(explode(".",$_FILES['thumb']['name']))); $extFull = strtoupper(end(explode(".",$_FILES['fullsize']['name']))); move_uploaded_file($_FILES['thumb']['tmp_name'],$thumbfile); move_uploaded_file($_FILES['fullsize']['tmp_name'],$fullfile); $picture_desc = $_REQUEST['desc']; $query = mysql_query("INSERT INTO pictures(species_id,picture_path,picture_thumb,picture_sex) VALUES('$id','".basename($fullfile)."','".basename($thumbfile)."','$sex')"); echo "$fullfile now uploaded..."; echo "<br>"; echo "$thumbfile now uploaded..."; } ?>
12. februar 2007 - 17:58
#3
Til resize kan du bruge denne funktion: function resize( $srcim, $maxw, $maxh ) { $ow = imagesx( $srcim ); $oh = imagesy( $srcim ); $wscale = $maxw / $ow; $hscale = $maxh / $oh; $scale = ( $hscale < $wscale ? $hscale : $wscale ); $nw = round( $ow * $scale, 0 ); $nh = round( $oh * $scale, 0 ); $dstim = imagecreatetruecolor( $nw, $nh ); imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh ); imagedestroy( $srcim ); return $dstim; }
12. februar 2007 - 20:14
#4
Hvordan ville du bruge det ind i koden?
12. februar 2007 - 20:26
#5
F.eks. i stedet for denne linie: move_uploaded_file($_FILES['thumb']['tmp_name'],$thumbfile);
19. februar 2007 - 15:46
#6
Okey den skal jeg ha lidt hjælp til... Kan du prøve at lave det?
19. februar 2007 - 17:52
#7
Prøv følgende kode: <?php function resize( $filename, $newfilename, $maxw, $maxh ) { $result = false; $srcim = imagecreatefromjpeg( $filename ); $ow = imagesx( $srcim ); $oh = imagesy( $srcim ); $wscale = $maxw / $ow; $hscale = $maxh / $oh; $scale = ( $hscale < $wscale ? $hscale : $wscale ); $nw = round( $ow * $scale, 0 ); $nh = round( $oh * $scale, 0 ); $dstim = imagecreatetruecolor( $nw, $nh ); imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh ); $result = imagejpeg( $dstim, $newfilename, 85 ); imagedestroy( $dstim ); imagedestroy( $srcim ); return $result; } $maxSize = 512000; //512 kb $allowPics = array("jpg", "jpeg"); $thumbWidth = 100; $thumbHeight = 100; $uploadDir = "/upload/"; $better_token = md5(uniqid(rand(), true)); if($_FILES['thumb']['size'] > 0 && $_FILES['fullsize']['size']) { $thumbfile = getcwd() . $uploadDir . $_FILES['thumb']['name']; $fullfile = getcwd() . $uploadDir . $_FILES['fullsize']['name']; if($_FILES['thumb']['size'] > $maxSize && $_FILES['fullsize']['size'] > $maxSize) { echo "Pics above 512KB not allowed!"; echo "<br>"; echo "<a href='upload.php'>Try again</a>"; exit(); } if (file_exists($thumbfile) && file_exists($fullfile)) { echo "The file $filename exists"; echo "<br>"; echo "<a href='upload.php'>Try again</a>"; exit(); } else { echo "The file $filename does not exist"; } $extThumb = strtoupper(end(explode(".",$_FILES['thumb']['name']))); $extFull = strtoupper(end(explode(".",$_FILES['fullsize']['name']))); resize($_FILES['thumb']['tmp_name'],$thumbfile,$thumbWidth,$thumbHeight); move_uploaded_file($_FILES['fullsize']['tmp_name'],$fullfile); $picture_desc = $_REQUEST['desc']; $query = mysql_query("INSERT INTO pictures(species_id,picture_path,picture_thumb,picture_sex) VALUES('$id','".basename($fullfile)."','".basename($thumbfile)."','$sex')"); echo "$fullfile now uploaded..."; echo "<br>"; echo "$thumbfile now uploaded..."; } ?>
19. februar 2007 - 20:02
#8
Tror jeg har formuleret mig forkert! Jeg vil gerne have at den kun uploader 1 billede men laver en kopi som den kaldes _thb_billedefil ogsom er resized. Plus at den uploader orginalfilen. Har lavet lidt tilretning: <?php function resize( $filename, $newfilename, $maxw, $maxh ) { $result = false; $filename = ("_thb_" && $filename); $srcim = imagecreatefromjpeg( $filename ); $ow = imagesx( $srcim ); $oh = imagesy( $srcim ); $wscale = $maxw / $ow; $hscale = $maxh / $oh; $scale = ( $hscale < $wscale ? $hscale : $wscale ); $nw = round( $ow * $scale, 0 ); $nh = round( $oh * $scale, 0 ); $dstim = imagecreatetruecolor( $nw, $nh ); imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh ); $result = imagejpeg( $dstim, $newfilename, 85 ); imagedestroy( $dstim ); imagedestroy( $srcim ); return $result; } $maxSize = 512000; //512 kb $allowPics = array("jpg", "jpeg"); $thumbWidth = 100; $thumbHeight = 100; $uploadDir = "/billeder/"; $better_token = md5(uniqid(rand(), true)); if($_FILES['fullsize']['size'] > 0) { $fullfile = getcwd() . $uploadDir . $_FILES['fullsize']['name']; if($_FILES['fullsize']['size'] > $maxSize) { echo "Pics above 512KB not allowed!"; echo "<br>"; echo "<a href='upload.php'>Try again</a>"; exit(); } if(file_exists($fullfile)) { echo "The file $filename exists"; echo "<br>"; echo "<a href='upload.php'>Try again</a>"; exit(); } else { echo "The file $filename does not exist"; } $extFull = strtoupper(end(explode(".",$_FILES['fullsize']['name']))); resize($_FILES['fullsize']['tmp_name'],$thumbfile,$thumbWidth,$thumbHeight); move_uploaded_file($_FILES['fullsize']['tmp_name'],$fullfile); $query = mysql_query("INSERT INTO pictures(species_id,picture_path,picture_thumb,picture_sex) VALUES('$id','".basename($fullfile)."','".basename($thumbfile)."','$sex')"); } ?> <form enctype="multipart/form-data" action="<?=$_SERVER['PHP_SELF'];?>" method="POST"> <table> <tr><td>FullSize file:</td><td><input name="fullsize" type="file" /></td></tr> <tr><td colspan="2"><input type="submit" value="Send File" name="upload"/></td></tr> </table> </form> Men det virker ihvertfald ikke ...
19. februar 2007 - 20:43
#9
Virker koden slet ikke? Eller er det kun noget af det som ikke virker?
19. februar 2007 - 20:57
#10
Altså min kode? Min kode uploader "move_uploaded_file($_FILES['fullsize']['tmp_name'],$fullfile);" Men den resize'er ikke og uploader det.
26. februar 2007 - 22:12
#11
Lukker det.
Vi tilbyder markedets bedste kurser inden for webudvikling