Слияние кода завершено, страница обновится автоматически
<?php
// +----------------------------------------------------------------------
// | OneThink [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: huajie <banhuajie@163.com>
// +----------------------------------------------------------------------
namespace Admin\Logic;
/**
* 文档模型子模型 - 下载模型
*/
class DownloadLogic extends BaseLogic{
/* 自动验证规则 */
protected $_validate = array(
array('content', 'require', '详细内容不能为空!', self::MUST_VALIDATE , 'regex', self::MODEL_BOTH),
array('download', 'number', '下载次数请输入整数!', self::VALUE_VALIDATE , 'regex', self::MODEL_BOTH),
array('file_id', 'require', '请上传附件!', self::MUST_VALIDATE , 'regex', self::MODEL_BOTH),
);
/* 自动完成规则 */
protected $_auto = array();
/**
* 获取模型详细信息
* @param integer $id 文档ID
* @return array 当前模型详细信息
* @author huajie <banhuajie@163.com>
*/
public function detail($id){
$data = $this->field(true)->find($id);
if(!$data){
$this->error = L('_TO_GET_MORE_INFORMATION_ABOUT_THE_ERROR_WITH_EXCLAMATION_');
return false;
}
$file = D('File')->field(true)->find($data['file_id']);
return $data;
}
/**
* 更新数据
* @param intger $id
* @author huajie <banhuajie@163.com>
*/
public function update($id = 0){
/* 获取下载数据 */ //TODO: 根据不同用户获取允许更改或添加的字段
$data = $this->create();
if(!$data){
return false;
}
$file = json_decode(think_decrypt(I('post.file_id')), true);
if(!empty($file)){
$data['file_id'] = $file['id'];
$data['size'] = $file['size'];
} else {
$this->error = L('_ACCESS_TO_UPLOAD_FILE_INFORMATION_FAILED_WITH_EXCLAMATION_');
return false;
}
/* 添加或更新数据 */
if(empty($data['id'])){//新增数据
$data['id'] = $id;
$id = $this->add($data);
if(!$id){
$this->error = L('_NEW_DETAILS_FAILED_WITH_EXCLAMATION_');
return false;
}
} else { //更新数据
$status = $this->save($data);
if(false === $status){
$this->error = L('_UPDATE_DETAILS_FAILED_WITH_EXCLAMATION_');
return false;
}
}
return true;
}
/**
* 下载文件
* @param number $id 文档ID
* @return boolean 下载失败返回false
*/
public function download($id){
$info = $this->find($id);
if(empty($info)){
$this->error = L('_DOCUMENT_NOT_EXIST_WITH_COLON_')."{$id}";
return false;
}
$File = D('File');
$root = C('DOWNLOAD_UPLOAD.rootPath');
$call = array($this, 'setDownload');
if(false === $File->download($root, $info['file_id'], $call, $info['id'])){
$this->error = $File->getError();
}
}
/**
* 新增下载次数(File模型回调方法)
*/
public function setDownload($id){
$map = array('id' => $id);
$this->where($map)->setInc('download');
}
/**
* 保存为草稿
* @return true 成功, false 保存出错
* @author huajie <banhuajie@163.com>
*/
public function autoSave($id = 0){
$this->_validate = array();
/* 获取文章数据 */
$data = $this->create();
if(!$data){
return false;
}
$file = json_decode(think_decrypt(I('post.file_id')), true);
if(!empty($file)){
$data['file_id'] = $file['id'];
$data['size'] = $file['size'];
}
/* 添加或更新数据 */
if(empty($data['id'])){//新增数据
$data['id'] = $id;
$id = $this->add($data);
if(!$id){
$this->error = L('_NEW_DETAILS_FAILED_WITH_EXCLAMATION_');
return false;
}
} else { //更新数据
$status = $this->save($data);
if(false === $status){
$this->error = L('_UPDATE_DETAILS_FAILED_WITH_EXCLAMATION_');
return false;
}
}
return true;
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )