上传文件中间件
该中间件会验证上传文件的类型、尺寸等信息,然后将上传文件移动到对应的 导入
上传
目录并追加上传文件信息到请求日志中。
导入
目录,根据需求及时清理或者按周期清理。
以导入 excel 为例
配置 config/authload/upload.php
$config = [
...
'import_uri' => [ // 导入的uri
'/public/uploadExample', '/goods/importGoodsInfo'
],
// 导入相关配置
'import_max_size' => 2 * 1024 * 1024, // 不要设置的太大,如果超过2M的话,需要同时调整swoole package_max_length 配置
'import_allow_suffix' => ['xlsx'],
'import_allow_type' => ['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],
'import_user_setting' => [
'/public/uploadExample' => [ //可以根据uri覆盖掉上面的配置
'import_max_size' => 1 * 1024 * 1024,
]
]
];
接口示例
public function uploadExample()
{
// body中包含 size、file_name、save_name、media_type字段
$body = $this->request->getAttribute('body');
$data = Excel::excelToData($body['save_name']);
// 请求 txf-server 保存 $data
// 如果不需要文件了,立即释放掉。或者写一个脚本定期清理导入目录
unlink($body['save_name']);
return true;
}