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

一个最基础的laravel文件上传,但是不管怎么搞,传过去的$request就是取不到文件名,

BUG如下

https://img.mukewang.com/5c8f63f30001689c02350574.jpg

代码如下:

https://img4.mukewang.com/5c8f63f40001a4d207250510.jpg

这个是视图层,表单提交的文件上传的代码

https://img1.mukewang.com/5c8f63f50001cf8605770131.jpg

都快挠破头了,还是不知道为啥取不到文件名,求助...在赶项目,在线等

PS:

是有的,enctype="multipart/form-data",

这个是打印出来的源码...

https://img1.mukewang.com/5c8f63f600011c2108000108.jpg



感谢大家的回复,结一下帖子吧

搞了半天也不知道是什么问题,最后只能用普通form提交了,

表单

https://img2.mukewang.com/5c8f63f80001dc9e07570288.jpg

上传的方法

https://img.mukewang.com/5c8f63f90001158208000573.jpg

没用$request,改用Input类了,总之是好用了,把解决方案发一下,多谢大家

拉莫斯之舞
浏览 1430回答 5
5回答

慕标琳琳

$name = Input::file('photo')->getClientOriginalName(); getClientOriginalName是Symfony\Component\HttpFoundation\File\UploadedFile类的方法。一般不用Request,可能反向申请依赖注入,Facade有它存在的意义。

宝慕林4294392

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

智慧大石

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

慕村9548890

表单上传文件,要加上这个:enctype="multipart/form-data"。建议先打开Network,看是否有传过去,可能html部分没有传过去,那么控制器里不管怎么打印都是拿不到的。 如果看过Network了并且html有提交数据的话,laravel要考虑csrf。 加上这个:{{ csrf_field() }}。参考文档:HTTP层 —— CSRF保护 也可以从 CSRF 保护中排除指定 URL。

阿晨1998

enctype="multipart/form-data" 这个加了吗. 有文件的话必须得有这个参数
打开App,查看更多内容
随时随地看视频慕课网APP