为了账号安全,请及时绑定邮箱和手机立即绑定

laravel文件上传取不到文件名,求助

laravel文件上传取不到文件名,求助

PHP
拉莫斯之舞 2019-03-07 18:52:25
一个最基础的laravel文件上传,但是不管怎么搞,传过去的$request就是取不到文件名, BUG如下 代码如下: 这个是视图层,表单提交的文件上传的代码 都快挠破头了,还是不知道为啥取不到文件名,求助...在赶项目,在线等 PS: 是有的,enctype="multipart/form-data", 这个是打印出来的源码... 感谢大家的回复,结一下帖子吧 搞了半天也不知道是什么问题,最后只能用普通form提交了, 表单 上传的方法 没用$request,改用Input类了,总之是好用了,把解决方案发一下,多谢大家
查看完整描述

5 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

$name = Input::file('photo')->getClientOriginalName();

getClientOriginalName是Symfony\Component\HttpFoundation\File\UploadedFile类的方法。
一般不用Request,可能反向申请依赖注入,Facade有它存在的意义。

查看完整回答
反对 回复 2019-03-18
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

建议你用Postman请求一下,advertise是请求的参数吗,把相关请求的url和参数都写在postman里面,然后再发出来,这样更直观一些

查看完整回答
反对 回复 2019-03-18
?
智慧大石

TA贡献1946条经验 获得超3个赞

$request->input('advertise')->getClientOriginalName();

https://img1.sycdn.imooc.com//5c8f63fc0001cec204500800.jpg

查看完整回答
反对 回复 2019-03-18
?
慕村9548890

TA贡献1884条经验 获得超4个赞

表单上传文件,要加上这个:enctype="multipart/form-data"。
建议先打开Network,看是否有传过去,可能html部分没有传过去,那么控制器里不管怎么打印都是拿不到的。

如果看过Network了并且html有提交数据的话,laravel要考虑csrf。

加上这个:{{ csrf_field() }}。
参考文档:HTTP层 —— CSRF保护

也可以从 CSRF 保护中排除指定 URL。

查看完整回答
反对 回复 2019-03-18
?
阿晨1998

TA贡献2037条经验 获得超6个赞

enctype="multipart/form-data"

这个加了吗. 有文件的话必须得有这个参数

查看完整回答
反对 回复 2019-03-18
  • 5 回答
  • 0 关注
  • 1426 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信