Thinkphp5+Layui异步Ajax上传文件报错的原因

原因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);

//这里竟然不需要加扩展名我也不知道为什么。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值