You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
2.1 KiB
PHTML

5 years ago
<?php
// +----------------------------------------------------------------------
// | OneThink [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: 麦当苗儿 <zuojiazi@vip.qq.com> <http://www.zjzit.cn>
// +----------------------------------------------------------------------
namespace Addons\Attachment\Controller;
use Home\Controller\AddonsController;
class AttachmentController extends AddonsController{
/* 附件下载 */
public function download(){
/* 获取附件ID */
$id = I('get.id');
if(empty($id) || !is_numeric($id)){
$this->error('附件ID无效');
}
/* 下载附件 */
$Attachment = D('Addons://Attachment/Attachment');
if(false === $Attachment->download($id)){
$this->error($Attachment->getError());
}
}
/* 上传附件 */
public function upload(){
/* 返回标准数据 */
$return = array('status' => 1, 'info' => '上传成功', 'data' => '');
/* 获取当前分类附件配置信息 */
$default = C('ATTACHMENT_DEFAULT');
$category = get_category(I('get.category'));
/* 分类正确性检测 */
if(empty($category)){
$return['status'] = 0;
$return['info'] = '没有指定分类或分类不正确;';
} else {
$config = $category['extend']['attachment'];
$config = empty($config) ? $default : array_merge($default, $config);
/* 检测并上传附件 */
if(in_array('2', str2arr($config['allow_type']))){
$setting = C('ATTACHMENT_UPLOAD');
/* 调用文件上传组件上传文件 */
$File = D('File');
$info = $File->upload($_FILES, $setting, $config['driver'], $config['driver_config']);
/* 记录附件信息 */
if($info){
$return['data'] = think_encrypt(json_encode($info['attachment']));
} else {
$return['status'] = 0;
$return['info'] = $File->getError();
}
} else {
$return['info'] = '该分类不允许上传文件附件!';
$return['status'] = 0;
}
}
/* 返回JSON数据 */
$this->ajaxReturn($return);
}
}