文件上传并生成几种大小的缩略图之二

<?php //----------------------------------------- start edit here ---------------------------------------------// $script_location = "http://up.online.cm"; // location fo the script $maxlimit = 9048576; // maxim image limit $folder = "images"; // folder where to save images // requirements $minwidth = 500; // minim width $minheight = 500; // minim height $maxwidth = 2560; // maxim width $maxheight = 1920; // maxim height // allowed extensions $extensions = array('.png', '.gif', '.jpg', '.jpeg','.PNG', '.GIF', '.JPG', '.JPEG'); //----------------------------------------- end edit here ---------------------------------------------// // check that we have a file if((!empty($_FILES["uploadfile"])) && ($_FILES['uploadfile']['error'] == 0)) { // check extension $extension = strrchr($_FILES['uploadfile']['name'], '.'); if (!in_array($extension, $extensions)) { echo 'wrong file format, alowed only .png , .gif, .jpg, .jpeg <script language="javascript" type="text/javascript">window.top.window.formEnable();</script>'; } else { // get file size $filesize = $_FILES['uploadfile']['size']; // check filesize if($filesize > $maxlimit){ echo "File size is too big."; } else if($filesize < 1){ echo "File size is empty."; } else { // temporary file $uploadedfile = $_FILES['uploadfile']['tmp_name']; // capture the original size of the uploaded image list($width,$height) = getimagesize($uploadedfile); // check if image size is lower if($width < $minwidth || $height < $minheight){ echo 'Image is to small. Required minimum '.$minwidth.'x'.$minheight.' <script language="javascript" type="text/javascript">window.top.window.formEnable();</script>'; } else if($width > $maxwidth || $height > $maxheight){ echo 'Image is to big. Required maximum '.$maxwidth.'x'.$maxheight.' <script language="javascript" type="text/javascript">window.top.window.formEnable();</script>'; } else { // all characters lowercase $filename = strtolower($_FILES['uploadfile']['name']); // replace all spaces with _ $filename = preg_replace('/\s/', '_', $filename); // extract filename and extension $pos = strrpos($filename, '.'); $basename = substr($filename, 0, $pos); $ext = substr($filename, $pos+1); // get random number $rand = time(); // image name $image = $basename .'-'. $rand . "." . $ext; // check if file exists $check = $folder . '/' . $image; if (file_exists($check)) { echo 'Image already exists'; } else { // check if it's animate gif $frames = exec("identify -format '%n' ". $uploadedfile .""); if ($frames > 1) { // yes it's animate image // copy original image copy($_FILES['uploadfile']['tmp_name'], $folder . '/' . $image); // orignal image location $write_image = $folder . '/' . $image; //ennable form echo '<img src="' . $write_image . '" alt="'. $image .'" alt="'. $image .'" width="500" /><br /> <input type="text" name="location" value="[IMG]'.$script_location.''.$write_image.'[/IMG]" class="location corners" /> <script language="javascript" type="text/javascript">window.top.window.formEnable();</script>'; } else { // create an image from it so we can do the resize switch($ext){ case "gif": $src = imagecreatefromgif($uploadedfile); break; case "jpg": $src = imagecreatefromjpeg($uploadedfile); break; case "jpeg": $src = imagecreatefromjpeg($uploadedfile); break; case "png": $src = imagecreatefrompng($uploadedfile); break; } // copy original image copy($_FILES['uploadfile']['tmp_name'], $folder . '/' . $image); // orignal image location $write_image = $folder . '/' . $image; // create first thumbnail image - resize original to 80 width x 80 height pixels $newheight = ($height/$width)*80; $newwidth = 80; $tmp=imagecreatetruecolor($newwidth,$newheight); imagealphablending($tmp, false); imagesavealpha($tmp,true); $transparent = imagecolorallocatealpha($tmp, 255, 255, 255, 127); imagefilledrectangle($tmp, 0, 0, $newwidth, $newheight, $transparent); imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height); // write thumbnail to disk $write_thumbimage = $folder .'/thumb-'. $image; switch($ext){ case "gif": imagegif($tmp,$write_thumbimage); break; case "jpg": imagejpeg($tmp,$write_thumbimage,100); break; case "jpeg": imagejpeg($tmp,$write_thumbimage,100); break; case "png": imagepng($tmp,$write_thumbimage); break; } // create second thumbnail image - resize original to 125 width x 125 height pixels $newheight = ($height/$width)*125; $newwidth = 125; $tmp=imagecreatetruecolor($newwidth,$newheight); imagealphablending($tmp, false); imagesavealpha($tmp,true); $transparent = imagecolorallocatealpha($tmp, 255, 255, 255, 127); imagefilledrectangle($tmp, 0, 0, $newwidth, $newheight, $transparent); imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height); // write thumbnail to disk $write_thumb2image = $folder .'/thumb2-'. $image; switch($ext){ case "gif": imagegif($tmp,$write_thumb2image); break; case "jpg": imagejpeg($tmp,$write_thumb2image,100); break; case "jpeg": imagejpeg($tmp,$write_thumb2image,100); break; case "png": imagepng($tmp,$write_thumb2image); break; } // create third thumbnail image - resize original to 125 width x 125 height pixels $newheight = ($height/$width)*250; $newwidth = 250; $tmp=imagecreatetruecolor($newwidth,$newheight); imagealphablending($tmp, false); imagesavealpha($tmp,true); $transparent = imagecolorallocatealpha($tmp, 255, 255, 255, 127); imagefilledrectangle($tmp, 0, 0, $newwidth, $newheight, $transparent); imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height); // write thumbnail to disk $write_thumb3image = $folder .'/thumb3-'. $image; switch($ext){ case "gif": imagegif($tmp,$write_thumb3image); break; case "jpg": imagejpeg($tmp,$write_thumb3image,100); break; case "jpeg": imagejpeg($tmp,$write_thumb3image,100); break; case "png": imagepng($tmp,$write_thumb3image); break; } // all is done. clean temporary files imagedestroy($src); imagedestroy($tmp); // image preview echo "<img src='" . $write_thumbimage . "' alt='". $image ."' /><br /> <input type='text' name='location' value='[IMG]".$script_location."/". $write_thumbimage ."[/IMG]' class='location corners' /><br /> <br /> <img src='" . $write_thumb2image . "' alt='". $image ."' /><br /> <input type='text' name='location' value='[IMG]".$script_location."/". $write_thumb2image ."[/IMG]' class='location corners' /><br /> <br /> <img src='" . $write_thumb3image . "' alt='". $image ."' /><br /> <input type='text' name='location' value='[IMG]".$script_location."/". $write_thumb3image ."[/IMG]' class='location corners' /><br /> <br /> <img src='" . $write_image . "' alt='". $image ."' alt='". $image ."' width='500' /><br /> <input type='text' name='location' value='[IMG]".$script_location."/".$write_image."[/IMG]' class='location corners' /> <script language='javascript' type='text/javascript'>window.top.window.formEnable();</script> <div class='clear'></div>"; } } } } // database connection include('inc/db.inc.php'); // insert into mysql database and show success message mysql_query("INSERT INTO `image_upload` (`id`, `image`, `thumbnail`, `thumbnail2`, `thumbnail3` ) VALUES (NULL, '". $image ."', 'thumb-". $image ."', 'thumb2-". $image ."', 'thumb3-". $image ."')"); } // error all fileds must be filled } else { echo '<div class="wrong">You must to fill all fields!</div>'; } ?>Image uploader Ajax图片上传生成缩略图,原版是国外一个有名的图片上传程序,采用无刷新的Ajax上传方式,上传成功后,可生成四张不同大小的缩略图,参数可以自己调整,演示效果可看如本站首页。同时它还可实现与数据库对接,将图片信息保存至数据库。
在本站上传图片只需要点击浏览选择图片后就会自动上传
在本站上传图片后会在首页显示最新上传的9张
上传图片根据图片大小时间不等.请耐心等待.
如等待几分钟后还处于上传状态.请点击本站logo刷新本页.如果您所上传的图片了出现了首页下部.证明上传成功.可以根据下面所说的规则得出其它图片地址.
本站为测试用,不做商业用途.所以带宽有限.如遇上传失败,请重新上传.
首页展示图片为第一张缩略图 格式为:http://up.online.cm/images/thumb-原图地址
根据上一条的说明四张图片分别为 1.thumb-原图地址;2.thumb2-原图地址;3.thumb3-原图地址;4.原图地址
论据以上说明.如果知道一张图片的地址了,就可以知道其它图片的地址了.
本站四张图片分别规格为 限制宽: 80px 125px 250px 原图
本站上传图片支持格式为:gif, jpg, png
本站上传图片尺寸限制为:最小不能小于 100px x100px 最大不能大于 2560px x 1920px
如果本站配置不能满足您的要求的话.请您自行下载源码安装到空间中.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值