原因1:检测$file = request()->file('file');这个$file里面是否获取到了值,没有值的话下面无论执行什么文件操作都会报错。
原因2:上传了中文命名的文件!!!!!如果你上传的文件有中文命名,就不需要再试了,会一直报“网络异常”错误的。不信你就手动的修改为英文命名的文件试一下。
检测文件名中是否包含中文的表达式:
preg_match("/([\x81-\xfe][\x40-\xfe])/", $name, $match)
//$name就是文件名——那个$match我也不知道要干什么。
解决方案1:给出错误提示,中止上传
$file = request()->file('file');
$path = ROOT_PATH . 'public' . DS;
$name=$file->getInfo()['name'];
if(preg_match("/([\x81-\xfe][\x40-\xfe])/", $name, $match)){
return error("不允许上传含有中文命名的文件!");
}
解决方案2:按照自己的喜好重新命名文件即可。
$newname = date('Ymds',time())."_".rand(1,9);
//这里竟然不需要加扩展名我也不知道为什么。