图片上传我们介绍过的教程非常的多了,今天我整理的这篇ajax图片上传主要有一个上传之后自动生成小图的功能并且还返回预览效果,下面我们来看看这段代码。
xml/html code
javascript code
processupload.php
php code
'; echo ' '; echo '
'; echo '
'; /* // insert info into database table! mysql_query(insert into myimagetable (imagename, thumbname, imgpath) values ($destrandimagename, $thumb_destrandimagename, 'uploads/')); */ }else{ die('resize error'); //output error } } // this function will proportionally resize image function resizeimage($curwidth,$curheight,$maxsize,$destfolder,$srcimage,$quality,$imagetype) { //check image size is not 0 if($curwidth <= 0 || $curheight <= 0) { return false; } //construct a proportional size of new image $imagescale = min($maxsize/$curwidth, $maxsize/$curheight); $newwidth = ceil($imagescale*$curwidth); $newheight = ceil($imagescale*$curheight); $newcanves = imagecreatetruecolor($newwidth, $newheight); // resize image if(imagecopyresampled($newcanves, $srcimage,0, 0, 0, 0, $newwidth, $newheight, $curwidth, $curheight)) { switch(strtolower($imagetype)) { case 'image/png': imagepng($newcanves,$destfolder); break; case 'image/gif': imagegif($newcanves,$destfolder); break; case 'image/jpeg': case 'image/pjpeg': imagejpeg($newcanves,$destfolder,$quality); break; default: return false; } //destroy image, frees memory if(is_resource($newcanves)) {imagedestroy($newcanves);} return true; } } //this function corps image to create exact square images, no matter what its original size! function cropimage($curwidth,$curheight,$isize,$destfolder,$srcimage,$quality,$imagetype) { //check image size is not 0 if($curwidth <= 0 || $curheight $curheight) { $y_offset = 0; $x_offset = ($curwidth - $curheight) / 2; $square_size = $curwidth - ($x_offset * 2); }else{ $x_offset = 0; $y_offset = ($curheight - $curwidth) / 2; $square_size = $curheight - ($y_offset * 2); } $newcanves = imagecreatetruecolor($isize, $isize); if(imagecopyresampled($newcanves, $srcimage,0, 0, $x_offset, $y_offset, $isize, $isize, $square_size, $square_size)) { switch(strtolower($imagetype)) { case 'image/png': imagepng($newcanves,$destfolder); break; case 'image/gif': imagegif($newcanves,$destfolder); break; case 'image/jpeg': case 'image/pjpeg': imagejpeg($newcanves,$destfolder,$quality); break; default: return false; } //destroy image, frees memory if(is_resource($newcanves)) {imagedestroy($newcanves);} return true; } }
以上就是我们要介绍的ajax无刷新图片上传功能了,其实就是通过异步模式提交给php然后由php上传图片并且生成小图返回给指定的id的htm元素模块即可。
