thinkphp/library/think/response/Download.php
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
namespace think\response;
use think\Exception;
use think\Response;
class Download extends Response
{
protected $expire = 360;
protected $name;
protected $mimeType;
protected $isContent = false;
protected $openinBrowser = false;
/**
* 处理数据
* @access protected
* @param mixed $data 要处理的数据
* @return mixed
* @throws \Exception
*/
protected function output($data)
{
if (!$this->isContent && !is_file($data)) {
throw new Exception('file not exists:' . $data);
}
ob_end_clean();
if (!empty($this->name)) {
$name = $this->name;
} else {
$name = !$this->isContent ? pathinfo($data, PATHINFO_BASENAME) : '';
}
if ($this->isContent) {
$mimeType = $this->mimeType;
$size = strlen($data);
} else {
$mimeType = $this->getMimeType($data);
$size = filesize($data);
}
$this->header['Pragma'] = 'public';
$this->header['Content-Type'] = $mimeType ?: 'application/octet-stream';
$this->header['Cache-control'] = 'max-age=' . $this->expire;
$this->header['Content-Disposition'] = $this->openinBrowser ? 'inline' : 'attachment; filename="' . $name . '"';
$this->header['Content-Length'] = $size;
$this->header['Content-Transfer-Encoding'] = 'binary';
$this->header['Expires'] = gmdate("D, d M Y H:i:s", time() + $this->expire) . ' GMT';
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。