栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

[错误记录]Current request is not a multipart...前端上传文件到后端报错记录

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[错误记录]Current request is not a multipart...前端上传文件到后端报错记录

项目场景:

编写后台管理系统的时候,需要上传图片或别的数据,但是传输数据出错,用layui自带的文件上传图片,以及表单数据,但图片传输的时候会报错。


问题描述

客户端页面上显示“请求接口上传异常”。后台显示Current request is not a multipart request.

问题解释:出现此种错误的原因是传输数据格式错误。

我的html的javascript部分:包括ajax传输部分和文件上传部分


原因分析:

问题分析:是因为layui文件上传的数据要求上传的接口即所填URL()必须是JSON格式,这个在layui官网有写出图片/文件上传模块文档 - Layui (swimafish.com)

上传接口

设定一个 URL 地址给 url 参数,用来告诉 upload 模块的服务端上传接口。像你平时使用Ajax一样。如:

upload.render({
  elem: '#id'
  ,url: '/api/upload/' //必填项
  ,method: ''  //可选项。HTTP类型,默认post
  ,data: {} //可选项。额外的参数,如:{id: 123, abc: 'xxx'}
});      
   

该接口返回的相应信息(response)必须是一个标准的 JSON 格式,如:

{
  "code": 0
  ,"msg": ""
  ,"data": {
    "src": "http://layui.swimafish.com/123.jpg"
  }
}       
      

注意1:你不一定非得按照上述格式返回,只要是合法的 JSON 字符即可。其响应信息会转化成JS对象传递给 done 回调。
注意2:如果上传后,出现文件下载框(一般为ie下),那么你需要在服务端对response的header设置 Content-Type: text/html

这个文档看不太懂哈哈哈,没关系。简单来说上传的这个格式由在网页上查看请求头,一般是由Content-Type设置,Content-Type:application/javascript是不行的,我这里查看到引入的layui.js和jquery.js的设置有问题

原因2:还有一种可能就是你的请求url原本应该是https的用了http,也会报这个错误。


解决方案:

方法一、将文件中的响应Conten-Type设置成multipart/form-data或者删掉Content-Type设置

方法二、在form表单中添加 enctype="multipart/form-data"

真的很难搞呀

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1023480.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号