PHP Script - Upload, Thumbnail & Store in DB
Omschrijving/functies:
Ik ben op zoek naar een script waarmee ik (meerdere) afbeeldingen kan uploaden. Na het uploaden moet er automatisch een thumbnail gemaakt worden (dus niet resizen, maar een aparte thumbnail) en de (unieke) naam van de afbeelding moet ik in een DB kunnen opslaan.
Heeft iemand zo'n script? Of kan iemand het voor me maken. Dan hoor ik het graag.
- PHP upload, thumbnail & store in db
-
665 × bekeken sinds 31-12-2009, 10:54 #1
PHP upload, thumbnail & store in db
-
In de schijnwerper
-
31-12-2009, 11:01 #2
- Berichten
- 571
- Lid sinds
- 17 Jaar
Je zou het hier eens mee kunnen proberen:
PHP Code:<?php
class image {
private $src;
private $width;
private $height;
public function __construct($src) {
$this->src = $src;
}
private function get_image_size() {
list($this->width, $this->height) = getimagesize($this->src);
}
public function convert($newSrc, $newWidth = "auto", $newHeight = "auto", $quality = 100) {
$this->get_image_size();
if($newWidth == "auto" and $newHeight == "auto") {
$newWidth = $this->width;
$newHeight = $this->height;
} elseif($newWidth == "auto") {
$newWidth = $this->width / ($this->height / $newHeight);
} elseif($newHeight == "auto") {
$newHeight = $this->height / ($this->width / $newWidth);
}
$newWidth = floor($newWidth);
$newHeight = floor($newHeight);
$newImage = imagecreatetruecolor($newWidth, $newHeight);
if(ereg("\.jpg$", $this->src) or ereg("\.jpeg$", $this->src)) {
$oldImage = imagecreatefromjpeg($this->src);
} elseif(ereg("\.png$", $this->src)) {
$oldImage = imagecreatefrompng($this->src);
} elseif(ereg("\.gif$", $this->src)) {
$oldImage = imagecreatefromgif($this->src);
}
imagecopyresampled($newImage, $oldImage, 0, 0, 0, 0, $newWidth, $newHeight, $this->width, $this->height);
if(ereg("\.jpg$", $newSrc) or ereg("\.jpeg$", $newSrc)) {
imagejpeg($newImage, $newSrc, $quality);
}
elseif(ereg("\.png$", $newSrc)) {
$quality = 9 - $quality / (100/9);
imagepng($newImage, $newSrc, $quality);
}
elseif(ereg("\.gif$", $newSrc)) {
imagegif($newImage, $newSrc);
}
imagedestroy($newImage);
return $this;
}
}
?>PHP Code:$image = new image("img.jpg");
$image
->convert("img1.png")
->convert("img2.png", 1000) // makes picture 1000 pixels width and calculates an auto height
->convert("img3.png", "auto", 1000) // makes picture 1000 pixels height and calculates an auto height
->convert("img1.jpg", 750, 750) // makes picture 750 pixels width and 750 pixels height
->convert("img2.jpg", 1000, "auto", 100); // makes picture 1000 pixles width and calcutates an auto height with a qualily of 100%
-
31-12-2009, 11:03 #3
- Berichten
- 2.392
- Lid sinds
- 17 Jaar
Oh bah... Ereg... En dat voor een PHP5 class :-(
-
31-12-2009, 11:05 #4
- Berichten
- 571
- Lid sinds
- 17 Jaar
Ik help alleen maar.
Als je het beter weet help dan ook door te zeggen hoe jij het zou doen, want aan dit commentaar hebben we natuurlijk geen moer Chris.
-
31-12-2009, 11:28 #5
- Berichten
- 348
- Lid sinds
- 16 Jaar
Ik heb al een goed script gevonden op; http://www.cafewebmaster.com/smart-m...f-jpeg-png-php
Nu heb ik het volgende probleem. Dit script upload goed, en maakt de thumbnail aan. Zover ben ik al. Nu moeten de namen van de afbeeldingen opgeslagen worden in de database.
Hoe doe ik dat aan de hand van dit script? Aangezien het dmv een While loop wordt geupload.
Edit:
Code
PHP Code:<?php
/**
* Smart Image Uploader by @cafewebmaster.com
* Free for private use
* Please support us with donations or backlinks
*/
$upload_image_limit = 5; // How many images you want to upload at once?
$upload_dir = ""; // default script location, use relative or absolute path
$enable_thumbnails = 1 ; // set 0 to disable thumbnail creation
##################### THUMBNAIL CREATER FROM GIF / JPG / PNG
function make_thumbnails($updir, $img){
$thumbnail_width = 80;
$thumbnail_height = 60;
$thumb_preword = "thumb_";
$arr_image_details = GetImageSize("$updir"."$img");
$original_width = $arr_image_details[0];
$original_height = $arr_image_details[1];
if( $original_width > $original_height ){
$new_width = $thumbnail_width;
$new_height = intval($original_height*$new_width/$original_width);
} else {
$new_height = $thumbnail_height;
$new_width = intval($original_width*$new_height/$original_height);
}
$dest_x = intval(($thumbnail_width - $new_width) / 2);
$dest_y = intval(($thumbnail_height - $new_height) / 2);
if($arr_image_details[2]==1) { $imgt = "ImageGIF"; $imgcreatefrom = "ImageCreateFromGIF"; }
if($arr_image_details[2]==2) { $imgt = "ImageJPEG"; $imgcreatefrom = "ImageCreateFromJPEG"; }
if($arr_image_details[2]==3) { $imgt = "ImagePNG"; $imgcreatefrom = "ImageCreateFromPNG"; }
if( $imgt ) {
$old_image = $imgcreatefrom("$updir"."$img");
$new_image = imagecreatetruecolor($thumbnail_width, $thumbnail_height);
imageCopyResized($new_image,$old_image,$dest_x,
$dest_y,0,0,$new_width,$new_height,$original_width,$original_height);
$imgt($new_image,"$updir"."$thumb_preword"."$img");
}
}
################################# UPLOAD IMAGES
foreach($_FILES as $k => $v){
$img_type = "";
### $htmo .= "$k => $v<hr />"; ### print_r($_FILES);
if( !$_FILES[$k]['error'] && preg_match("#^image/#i", $_FILES[$k]['type']) && $_FILES[$k]['size'] < 1000000){
$img_type = ($_FILES[$k]['type'] == "image/jpeg") ? ".jpg" : $img_type ;
$img_type = ($_FILES[$k]['type'] == "image/gif") ? ".gif" : $img_type ;
$img_type = ($_FILES[$k]['type'] == "image/png") ? ".png" : $img_type ;
$img_rname = $_FILES[$k]['name'];
$img_path = $upload_dir.$img_rname;
copy( $_FILES[$k]['tmp_name'], $img_path );
if($enable_thumbnails) make_thumbnails($upload_dir, $img_rname);
$feedback .= "Image and thumbnail created $img_rname<br />";
}
}
############################### HTML FORM
while($i++ < $upload_image_limit){
$form_img .= '<label>Image '.$i.': </label> <input type="file" name="uplimg'.$i.'"><br />';
}
$htmo .= '
<p>'.$feedback.'</p>
<form method="post" enctype="multipart/form-data">
'.$form_img.' <br />
<input type="submit" value="Upload Images!" style="margin-left: 50px;" />
Powered by <a href="http://cafewebmaster.com">Cafe Webmaster</a>
</form>
';
echo $htmo;
?>
Ik ben er zelf een heel eind uitgekomen. Voor de laatste probleempjes open ik even een nieuw topic.
Laatst aangepast door Ton van Alebeek : 31-12-2009 om 12:00
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic