首先来一段简单的php上传图片生成缩略图的详细代码,分享给大家供大家参考,具体内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<?php function createThumbnail( $imageDirectory , $imageName , $thumbDirectory , $thumbWidth , $quality ){ $details = getimagesize ( "$imageDirectory/$imageName" ) or die ( 'Please only upload images.' ); $type = preg_replace( '@^.+(?<=/)(.+)$@' , '$1' , $details [ 'mime' ]); eval ( '$srcImg = imagecreatefrom' . $type . '("$imageDirectory/$imageName");' ); $thumbHeight = $details [1] * ( $thumbWidth / $details [0]); $thumbImg = imagecreatetruecolor( $thumbWidth , $thumbHeight ); imagecopyresampled( $thumbImg , $srcImg , 0, 0, 0, 0, $thumbWidth , $thumbHeight , $details [0], $details [1]); eval ( 'image' . $type . '($thumbImg, "$thumbDirectory/$imageName"' . (( $type == 'jpeg' )? ', $quality' : '' ). ');' ); imagedestroy( $srcImg ); imagedestroy( $thumbImg ); } foreach ( $_FILES [ "pictures" ][ "error" ] as $key => $error ) { if ( $error == UPLOAD_ERR_OK) { $tmp_name = $_FILES [ "pictures" ][ "tmp_name" ][ $key ]; $name = $_FILES [ "pictures" ][ "name" ][ $key ]; move_uploaded_file( $tmp_name , "data/$name" ); createThumbnail( "/location/of/main/image" , $name , "/location/to/store/thumb" , 120, 80); //120 = thumb width :: 80 = thumb quality (1-100) } } ?> |
接下来再为大家推荐一个实例php使用GD库上传图片以及创建缩略图,直接看代码:
GD库是PHP进行图象操作一个很强大的库。
先在php.ini里增加一行引用:extension=php_gd2.dll
重启apache,做一个测试页var_dump(gd_info());输出数据表明GD库引用成功。
图片上传页面 upload.html
1
2
3
4
5
6
7
8
9
10
11
12
13
|
< html > < head > < meta http-equiv = 'Content-Type' content = 'text/html; charset=utf-8' > < title >图片上传</ title > </ head > < body > < h1 >文件上传(只允许上传jpg类型图片)</ h1 > < form enctype = "multipart/form-data" action = "upload_img.php" method = "post" > < input name = "upfile" type = "file" >< br >< br > < input type = "submit" value = "提交" > </ form > </ body > </ html > |
处理页面upload_img.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<?php //上传图片保存地址 $uploadfile = "upfiles/" . $_FILES [ 'upfile' ][ 'name' ]; //缩略图保存地址 $smallfile = "upfiles/small_" . $_FILES [ 'upfile' ][ 'name' ]; if ( $_FILES [ 'upfile' ][ 'type' ] != "image/jpeg" ) { echo '文件类型错误' ; } else { move_uploaded_file( $_FILES [ 'upfile' ][ 'tmp_name' ], $uploadfile ); //上传文件 $dstW =200; //缩略图宽 $dstH =200; //缩略图高 $src_image =ImageCreateFromJPEG( $uploadfile ); $srcW =ImageSX( $src_image ); //获得图片宽 $srcH =ImageSY( $src_image ); //获得图片高 $dst_image =ImageCreateTrueColor( $dstW , $dstH ); ImageCopyResized( $dst_image , $src_image ,0,0,0,0, $dstW , $dstH , $srcW , $srcH ); ImageJpeg( $dst_image , $smallfile ); echo '文件上传成功<br>' ; echo "<img src='$smallfile' />" ; } ?> |
希望对大家学习php程序设计有所帮助,谢谢大家的支持。