文件上传问题

文件上传问题

http://img1.sycdn.imooc.com//climg/5e5f6e60094a69ea12720551.jpg

http://img1.sycdn.imooc.com//climg/5e5f6ec209ed969a12840532.jpg

老师,商品的添加(修改)功能,处理上传文件流这里有问题。我在前端页面没有添加图片(缩略图或者是详情图都没添加),但是为什么后台这里multipartResolver.isMultipart(request)为true,然后往下执行导致了空指针异常?

求解,谢谢老师~

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好!

  1.  MultipartResolver 的 isMultipart(request) 方法只是检查当前 Web 请求是否为 multipart类型。案例中是肯定有的。所以不需要写这个判断也是可以的。加上会更加严谨

  2. 在这里我们使用了MultipartResolver做文件上。有文件上传它就不是一个普通的rquest,必然是包含multipart/form-data

    http://img1.sycdn.imooc.com//climg/5e605cbd0968f54f07710233.jpg

祝学习愉快~

  • qq_粽翎_0 提问者 #1
    了解,谢谢老师
    2020-03-05 10:01:35
好帮手慕柯南 2020-03-04 18:47:23

同学你好!

multipartResolver.isMultipart(request)是判断request中是可以包含文件流的请求,简单点理解就是多部分请求。

类似于下面这种,可以看到request中还有一个request

http://img1.sycdn.imooc.com/climg/5e5f86c009bbfb5306650143.jpg

因此即使没有上传文件,也是多部份请求。只是文件为null而已,所以没有上传文件会出空指针异常。老师再service层也有进行判断

http://img1.sycdn.imooc.com//climg/5e5f876e09287a6b10810427.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


  • 提问者 qq_粽翎_0 #1
    那意思是multipartResolver.isMultipart(request)是恒成立的啊?有没有文件流都成立,那为啥还要写这个if判断呢? 写个普通request转换成MultipartHttpServletRequest的工具类,既可以接收普通参数,也可以接收文件类型的参数,这样更好吧
    2020-03-04 19:52:19
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师