当前位置: 首页 > news >正文

江苏省 前置审批 网站软件开发平台协议

江苏省 前置审批 网站,软件开发平台协议,厦门关键词排名推广,阳春建设局网站今天在上课的时候,遇到了一个比较坑的问题,有个学生拿来了她的代码,让我给她看看为什么传值传不过来。 首先,前端是这样的: function upload(){var formData new FormData();formData.append(images, $(#previewImg)…

今天在上课的时候,遇到了一个比较坑的问题,有个学生拿来了她的代码,让我给她看看为什么传值传不过来。
首先,前端是这样的:

function upload(){var formData = new FormData();formData.append('images', $('#previewImg')[0].files[0]);var id1=$("input[name='id']").val()formData.append('id', id1);$.ajax({type:"post",processData: false,contentType: false,url:"uploadImage",data:formData,success:function(data){}});
}

后端是这样的:

@PostMapping("/uploadImage")public Map uploadImage(Integer id,MultipartFile images,HttpSession session){
//        System.out.println(id);
//        System.out.println(images);}}

然后上传文件的配置器是这样的:

<bean id="CommonsMultipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8"/>
<property name="maxUploadSize" value="1048675000"/>
<property name="maxUploadSizePerFile" value="1048675000"/>
</bean>

她遇到的第一个问题是,后端这里接受值的时候,接受到的id和文件都是null,然后再后续的使用中报空指针了。

看起来就是一个很简单的空指针问题,我拿来查的时候,先看了一下她这边的前段,开始我没有注意到是使用的fromdata,我以为是普通的json传输,而且在network中也很明显能看到请求头和带的参数。

后端可以报空指针,说明后端的代码也进去了,说明请求头也没问题。
所以我觉得问题原因可能出在请求头接受值的地方(事实证明,老中医的直觉是对的)
所以我把她的后端代码头做了修改。:

public Map uploadImage(HttpServletRequest request,HttpSession session){

用HttpServletRequest 来接受试试(这时候我还没注意到fromdata)然后发现,在req中也获取不到id,我有点麻了,我觉得可能是写法问题,导致这个数据不在req里面,我再换个写法:

    public Map uploadImage(@RequestParam Integer id,@RequestParam MultipartFile images,HttpSession session){

可能是我对HttpServletRequest 忘记的多,找不到值在哪儿,我直接用注解去取值看看,结果发现还是null。我当时就无语了,这他妈的。

然后我就又回头去看前段,既然这里折腾半天没效果,不如换个阵地。之前前端传后端没见过二进制的文件流啊,是不是因为这玩意的原因?我去前段把她这里set文件的地方给她注掉了,我心想,这不就变成了一个普通的ajax了么,这不应该有问题吧。

然后我就去后端看,上面的三板斧又转了一圈,还不行。我真是见了鬼了。
然后学生和我说,老师是不是fromdata的问题。
我一看,这里怎么还不一样呢,我以为这里就是个普通的json。
完了又看了俩眼这个fromdata的用法,很简单啊,前段传值,后端接收,没毛病啊。这还有什么问题不成?
搜了一下fromdata使用的时候注意事项,有文章说要加个注解@MultipartConfig,但是我试过了,发现还是null,这怎么可能啊!我要颜面扫地了。
这个时候这个问题已经看了接近2个小时了,这个时候学生吐槽说,一般这种一看看一天的问题,八成是什么小问题,不知道哪儿写错了。
我也同意这种想法,于是,我的目光又回到了后端的接受请求的地方:

public Map uploadImage(Integer id,MultipartFile images,HttpSession session){

她这里前端fromdata设置值的时候,先塞的file,后塞的id,会不会是这里接受参数的顺序有影响?
然后我把这句改了一下:

  public Map uploadImage(MultipartFile images,Integer id,HttpSession session){

对,没错,我调换了俩个参数的位置试了一下(死马当活马医了)
然后,然后,然后这个问题就解决了,他的报错终于跳到下一步了!!!!

调换了参数位置以后,出现了新的报错,说她没有配置文件解析器,但是她这里是有配置MultipartFilte上传文件解析器的,然后这个问题比较简单,看了一下,解析器的id不对。应该是:

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8"/>
<property name="maxUploadSize" value="1048675000"/>
<property name="maxUploadSizePerFile" value="1048675000"/>
</bean>

一下午这就过去了,看了一个问题看了快2个半小时,所以必须写个文章记录一下。

http://www.yayakq.cn/news/860778/

相关文章:

  • 百度网站权重排行网站建设公司知道万维科技
  • 视频网站后台登陆wordpress二级目录伪静态
  • 免费建站平台官网品牌推广和品牌营销
  • 可拖拽网站用宝塔做网站
  • 深圳网站建设服务提供商照片网站模版
  • 怎么做wp网站网页制作模板关于我们
  • 河津网站制作如何让网站被百度收录
  • 手机wap网站模板做问卷调查的是哪个网站好
  • 网站开发员的工资那个网站做720度效果图
  • 专业网站设计立找亿企邦广告设计公司考察报告
  • 建设部物业证书查询官方网站网站title字数
  • 做团建活动网站php是前端还是后端
  • 电子商务网站建设与管理考试例题国际网站建设的目的
  • 赣州建设局网站wordpress图集功能
  • 腾讯合作网站建设有哪些公司wordpress本地做好如何改站点地址
  • 仙游县网站建设做网站的一般尺寸
  • 网站优化报价单网站使用什么语言好
  • 诸城哪里做网站深圳专业网站建设排名
  • 网站设置怎么删除数据巢湖市建设工程网站
  • 云南省建设厅官方网站阿里巴巴做网站难吗
  • 网站备案信息是什么17做网店
  • 网站开发新加坡佛山 顺德营销型网站设计
  • 云南做网站需要多少钱街头小吃加盟网站建设
  • 网站设计怎么边加载变查看天津开发网站公司
  • 看剧资源网站怎么做的全国拿货最便宜的网站
  • 新网站如何做百度关键词最好要使用中文目录
  • 网站建设分为展示型安徽省省博物馆网站建设
  • 百度收录网站排名找加工厂上什么网站
  • 花钱让别人做的网站版权是谁的厦门建网站做优化
  • 网站建设合优家庭千兆网络组建方案