thinkphp3.2.1上传图片生成缩略图 新手发帖,请多指教

浏览:763 发布日期:2015/07/22 分类:技术分享
****index.html******
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>图片上传</title>
</head>
<body>
<form action="__URL__/upload" enctype="multipart/form-data"
method="post">
<input type="file" name="photo" />

<input type="submit" value="提交">
</form>

</body>
</html>

***************IndexController.class.php******************
<?php

namespace Home\Controller;

use Think\Controller;

class IndexController extends Controller {
public function upload() {
$upload = new \Think\Upload (); // 实例化上传类
$upload->maxSize = 3145728; // 设置附件上传大小
$upload->exts = array (
'jpg',
'gif',
'png',
'jpeg'
); // 设置附件上传类型
$savepath = 'Public/Uploads/';
$savepath_mini = './Public/Uploads/mini/';
if (! file_exists ( $savepath )) {
mkdir ( $savepath, true );
chmod ( $savepath, true );
}
$upload->rootPath = $savepath; // 设置附件上传根目录
$upload->savePath = ''; // 设置附件上传(子)目录
// 上传文件
$info = $upload->upload ();
if (! $info) { // 上传错误提示错误信息
$this->error ( $upload->getError () );
} else { // 上传成功,插入数据库
foreach ( $info as $file ) {
$model = M ( 'Photo' );
// 取得成功上传的文件信息
$info = $upload->upload ();
// 保存当前数据对象
$data ['savename'] = $file ['savename'];
$data ['savepath'] = $savepath . $file ['savepath'] . $file ['savename'];
$data ['create_time'] = date ( "Y-m-d H:i:s" );
$model->add ( $data );
$this->success ( '上传成功!' );
}
$imgurl = $savepath . $file ['savepath'] . $file ['savename']; // 要生成缩略图的图片地址
$imageName = $file ['savename']; // 缩略图保存的文件名
$saveurl = $savepath_mini . $imageName; // 生成的缩略图保存地址
$image = new \Think\Image (); // 实例化Image类
$image->open ( $imgurl );
// 按照原图的比例生成一个最大为150*150的缩略图并保存为thumb.jpg
$image->thumb ( 100, 100 )->save ( $saveurl );
}
}
}
最佳答案
评论( 相关
后面还有条评论,点击查看>>