mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-01 12:42:48 +08:00
修正File类 改进Input类的file方法
This commit is contained in:
@@ -23,6 +23,25 @@ class File extends SplFileObject
|
||||
// 文件上传命名规则
|
||||
protected $rule = 'date';
|
||||
|
||||
// 上传文件信息
|
||||
protected $info;
|
||||
|
||||
public function __construct($filename, $info = [])
|
||||
{
|
||||
parent::__construct($filename);
|
||||
$this->info = $info;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取上传文件的信息
|
||||
* @param string $name
|
||||
* @return array|string
|
||||
*/
|
||||
public function getInfo($name = '')
|
||||
{
|
||||
return isset($this->info[$name]) ? $this->info[$name] : $this->info;
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查目录是否可写
|
||||
* @param string $path 目录
|
||||
@@ -139,7 +158,7 @@ class File extends SplFileObject
|
||||
}
|
||||
}
|
||||
if (!strpos($savename, '.')) {
|
||||
$savename .= '.' . $this->getExtension();
|
||||
$savename .= '.' . pathinfo($this->getInfo('name'), PATHINFO_EXTENSION);
|
||||
}
|
||||
} elseif ('' === $savename) {
|
||||
$savename = $this->getFilename();
|
||||
|
||||
@@ -216,32 +216,38 @@ class Input
|
||||
{
|
||||
$files = $files ?: (isset($_FILES) ? $_FILES : []);
|
||||
if (!empty($files)) {
|
||||
// 处理上传文件
|
||||
$array = [];
|
||||
$n = 0;
|
||||
foreach ($files as $key => $file) {
|
||||
if (is_array($file['name'])) {
|
||||
$keys = array_keys($file);
|
||||
$count = count($file['name']);
|
||||
for ($i = 0; $i < $count; $i++) {
|
||||
$array[$n]['key'] = $key;
|
||||
foreach ($keys as $_key) {
|
||||
$array[$n][$_key] = $file[$_key][$i];
|
||||
}
|
||||
$n++;
|
||||
}
|
||||
} else {
|
||||
$array = $files;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ('' === $name) {
|
||||
// 获取全部文件
|
||||
$file = [];
|
||||
foreach ($files as $name => $val) {
|
||||
$item = [];
|
||||
foreach ($array as $key => $val) {
|
||||
if (empty($val['tmp_name'])) {
|
||||
continue;
|
||||
}
|
||||
if (is_array($val['tmp_name'])) {
|
||||
foreach ($val['tmp_name'] as $item) {
|
||||
$file[] = new File($item);
|
||||
}
|
||||
} else {
|
||||
$file[] = new File($val['tmp_name']);
|
||||
}
|
||||
}
|
||||
return $file;
|
||||
} elseif (!empty($files[$name]['tmp_name'])) {
|
||||
if (is_array($files[$name]['tmp_name'])) {
|
||||
$file = [];
|
||||
foreach ($files[$name]['tmp_name'] as $item) {
|
||||
$file[] = new File($item);
|
||||
}
|
||||
return $file;
|
||||
} else {
|
||||
return new File($files[$name]['tmp_name']);
|
||||
$item[$key] = new File($val['tmp_name'], $val);
|
||||
}
|
||||
return $item;
|
||||
} elseif (isset($array[$name])) {
|
||||
return new File($array[$name]['tmp_name'], $array[$name]);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user