控制器代码
class Device
{
public function upload(Request $request)
{
$file = $request->file('file');
}
}
报错如下:
[2022-01-21 15:11:14] default.ERROR: Undefined index: type {"exception":"ErrorException: Undefined index: type in /Users/chen/Code/www/webman/vendor/workerman/webman-framework/src/Http/Request.php:127
在Request.php 127行 parseFile 方法 print_r($file)
Array
(
[name] =>
[tmp_name] => /private/var/folders/zg/jt3t90p54t3199md1d3xdvq00000gn/T/workerman.upload.NdyqKR
[size] => 0
[error] => 7
)
/private/var/folders/zg/jt3t90p54t3199md1d3xdvq00000gn/T
看起来是这个目录不可写导致的
不是的,看错误是未定义的索引 type
parseFile方法的参数$file 只有name,tmp_name,size,error这四个key,临时在support/Request 重写了 parseFile 方法,把$file['type']改成了$file['size'],就不报错啦
$file['type'] 和 $file['size'] 不是同一个属性,不能改。
[error] => 7 ,这个上传目录不可写错误码
找到问题了,指定了参数file,但是没提交上传的文件,就报这个错误了;把
$file['type']
改成isset($file['type']) ? $file['type'] : null
了,谢谢老大