tp5-文件上传

88 阅读1分钟

1.文件上传除非在form表单中 action 属性写了请求的url,不需要用到 FormData这个对象,使用ajax 异步上传文件(包括二进制) 使用这个formdata对象可以帮助减小工作量(form 增加 enctype="multipart/form-data")

2.formdata.append('file[]',files【i】【 key,values 模式】)【i循环files】;

3.ajax  processData 设置为 false, data:formdata ...

4.tp5 controller 接收 【request()->file('file') 【formdata 接收文件的key: 'file'  】】

5.查看是否接收到 前台传来的文件, $file = request()->file('file');

   错误方式:return json(file); //会输出空对象,但是用原声的file);  //会输出 空对象, 但是用原声的_FILES 接受并输出却能输出, 这是因为 tp5在文件上传这一块做了 特殊处理,直接获取file对象里的数据是获取不到的,file 对象里的数据是获取不到的, file 对象里的属性都是 protected【return dump(file)可以发现】,需要使用 tp5源码提供的file) 可以发现】, 需要使用  tp5 源码 提供的 file->getInfo() 这个方法去获取 上传文件的信息!!!!!

6.文件上传到指定路径下  move(’$path‘, 'file_name', true) 方法