Skip to content

Commit

Permalink
图片上传处理,包括缩略图的生成
Browse files Browse the repository at this point in the history
  • Loading branch information
Tinywan committed Aug 15, 2016
1 parent 9659944 commit 5e9a78b
Show file tree
Hide file tree
Showing 4 changed files with 97 additions and 4 deletions.
1 change: 1 addition & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions Backend/Common/Conf/config.php
Original file line number Diff line number Diff line change
Expand Up @@ -82,4 +82,13 @@

//错误页面
'TMPL_ACTION_FILE' => __ROOT__.'/Public/error/exception.tpl',




//======================================图片上传配置=========================
'UPLOAD_MAX_SIZE' => 2000000, //最大上传大小
'UPLOAD_PATH' => './Uploads/', //文件上传保存路径
//'UPLOAD_PATH' => './', //文件上传保存路径
'UPLOAD_EXTS' => array('jpg','jpeg','gif','png'),
);
87 changes: 85 additions & 2 deletions Backend/Home/Controller/FileController.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ public function uploadFile($thumbWidth = 100, $thumbHeight = 100)
//unlink($thumb_file); //上传生成缩略图以后删除源文件
}
//url拼接
$version_url = __ROOT__ . '/Uploads/' . $file_arr['savepath'] . $file_arr['savename'];
$version_url = __ROOT__ . '/Uploads/' . iconv('UTF-8','GBK',$file_arr['savepath']) . iconv('UTF-8','GBK',$file_arr['savename']);

$db = M('PublishTable');
$db->software_name = $software_name;
Expand All @@ -87,10 +87,86 @@ public function image()
$this->display();
}

/**
* 图片上传处理,包括缩略图的生成
* @param [String] $path [保存文件夹名称,默认为Images]
* @param [String] $thumb [是否生成缩略图,默认False不生成缩略图]
* @param [String] $thumbWidth [缩略图宽度]
* @param [String] $thumbHeight [缩略图高度]
* @return [Array] [图片上传信息]
*/
public function imageUpload($path = 'Images',$thumb = FALSE ,$thumbWidth = '' , $thumbHeight = '')
{
// 检查配置目录是否存在,如果不存在,则创建一个
if (!is_dir(C('UPLOAD_PATH'))){
mkdir(iconv('UTF-8', 'GBK', C('UPLOAD_PATH')), 0777, true);
}
//============支持在实例化后动态赋值上传参数===================
$obj = new \Think\Upload();// 实例化上传类
$obj->maxSize = C('UPLOAD_MAX_SIZE') ;// 设置附件上传大小
$obj->rootPath = C('UPLOAD_PATH') ;// 保存根路径
$obj->savePath = $path.'/'; // 设置附件上传目录
$obj->exts = C('UPLOAD_EXTS');// 设置附件上传类型
$obj->saveName = array('uniqid','');//文件名规则
$obj->replace = true;//存在同名文件覆盖
$obj->autoSub = true;//使用子目录保存
$obj->subName = array('date','Ym');//子目录创建规则,
$info = $obj->upload();
// 没有上传成功,则直接返回错误信息
if(!$info) return array('status' =>0, 'msg'=> $obj->getError());

//=============是否生成缩略图==================================
if($thumb) {
$image = new \Think\Image();
// 循环获取上传文件信息
foreach ($info as $file) {
// 获取缩略图文件
$thumbFile = C('UPLOAD_PATH') . $file['savepath'] . $file['savename'];
// 保存缩略图路径,也就是需要保存的文件的格式
$savePath = C('UPLOAD_PATH') . $file['savepath'] . 'mini_' . $file['savename'];
//使用open方法打开图像文件进行相关操作
$image->open($thumbFile);
$width = $image->width(); // 返回图片的宽度
$height = $image->height(); // 返回图片的高度
$type = $image->type(); // 返回图片的类型
$mime = $image->mime(); // 返回图片的mime类型
$size = $image->size(); // 返回图片的尺寸数组 0 图片宽度 1 图片高度
//使用thumb方法生成缩略图,IMAGE_THUMB_FILLED = 2 ; 缩放后填充类型
$image->thumb(150, 150, \Think\Image::IMAGE_THUMB_FILLED);
$image->save($savePath);
// 返回文件信息
return array(
'status' => 1,
'savepath' => $file['savepath'],
'savename' => $file['savename'],
'pic_path' => $file['savepath'] . $file['savename'],
'mini_pic' => $file['savepath'] . 'mini_' . $file['savename']
);
//@unlink($thumb_file); //上传生成缩略图以后删除源文件
}
}else{
foreach($info as $file)
{
// 返回文件信息
return array(
'status' => 1,
'savepath' => $file['savepath'],
'savename' => $file['savename'],
'pic_path' => $file['savepath'] . $file['savename'],
'mini_pic' => $file['savepath'] . 'mini_' .$file['savename']
);
}
}
}

/**
* uploadify 文件上传
*/
public function uploadImage()
{

if (!empty($_FILES)) {
if (!empty($_FILES))
{
//图片上传设置
$config = array(
'maxSize' => 3145728,
Expand Down Expand Up @@ -124,5 +200,12 @@ public function uploadImage()
}
}

public function test(){
if (!is_dir(C('UPLOAD_PATH'))){
var_dump(mkdir(iconv('UTF-8', 'GBK', C('UPLOAD_PATH')), 0777, true));
}
echo 1111111;
}


}
4 changes: 2 additions & 2 deletions Backend/Home/View/File/image.html
Original file line number Diff line number Diff line change
Expand Up @@ -88,15 +88,15 @@ <h4>文件上传管理</h4>
var i = 0;//初始化数组下标
jQuery(function ($) {
var sessionId = "{:session_id()}";
var uploaderUrl = "{:U('Home/File/uploadImage')}";
var uploaderUrl = "{:U('Home/File/imageUpload')}";
var swfUrl = "__PUBLIC__/Backend/js/uploadify/uploadify.swf";
$('#photo_upload').uploadify({
'auto': true,//关闭自动上传
'removeTimeout': 1,//文件队列上传完成1秒后删除
'swf': swfUrl,
'uploader': uploaderUrl,
'width' : 120,//上传按钮样式
'height' : 30,
'height' : 60,
'buttonImage' : '__PUBLIC__/Backend/avatars/avatar.png',//上传按钮背景图地址
'method': 'post',//方法,服务端可以用$_POST数组获取数据
'buttonText': '选择图片',//设置按钮文本
Expand Down

0 comments on commit 5e9a78b

Please sign in to comment.