
正文
javascript附件,js附件下载
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
js 提交表单数据: 附件+对象的的多集合
在我们前端进行表单提交的时候,有时候会出现这种情况:Failed to convert java.lang.String to java.util.List
等等。
例如:
我后台定义一个对象:
examPaper 包含 String userId,Float userScore, MultipartFile examFile 用户id ,试卷分数,试卷文件
对象外面 classPaper有: String classId String className ListexamPaper examPaperList
这个时候,后台接收为 ClassPaper
如果按照平常的 form-data 提交 则应按以下方式提交:
let fd = new FormData();
fd.append("classId ",classId );
fd.append("className ",className );
examPaperList.forEach((item,index) -{
fd.append("examPaperList["+index+"].userId",item.userId);
fd.append("examPaperList["+index+"].userScore",item.userScore);
fd.append("examPaperList["+index+"].examFile ",item.examFile );
});
以这种方式就可以实现 多附件 一一 对应提交。以避免对象转换错误问题。
相关问答
Q1: javascript h5 app(react.js)中如何下载附件(url链接形式)并在新窗口中打开附件?
我们只要用content创建一个ObjectURL并赋值给aLink即可解决文件类型的限制问题。
文件的自动下载也挺好办,自己构建一个UI点击事件,再自动触发下,就能实现自动下载啦。
现在来看看最终代码:
代码如下:
function downloadFile(fileName, content){
var aLink = document.createElement('a');
var blob = new Blob([content]);
var evt = document.createEvent("HTMLEvents");
evt.initEvent("click", false, false);//initEvent 不加后两个参数在FF下会报错, 感谢 Barret Lee 的反馈
aLink.download = fileName;
aLink.href = URL.createObjectURL(blob);
aLink.dispatchEvent(evt);
}
现在,只要一调用downloadFile,文件就自动下载了
Q2: js中获取form表单中的附件名称
js中获取form表单中的附件名称方法如下
1. 利用表单在文档中的索引或表单的name属性来引用表单
1 document.forms[i] // 得到页面中的第i个表单 2 document.forms[formName] // 得到页面中相应name。







