背景
某项目,前端页面需要存储大型json对象,每个json对象约5-10M。
不适合直接存入数据库表中,故准备将JSON对象转为文件,以multipart/form-data的Content-Type,文件形式上传到后台,然后后台只要保存URL地址即可。
处理方法
首先解决json对象转换为文件对象的问题。如下测试代码:
var debug = {hello: "world"};
var blob = new Blob([JSON.stringify(debug, null, 2)], {type : 'application/json'});
let files = new window.File([this.blob], file.name, {type: file.type})
然后解决文件上传的问题,因为json文件是动态生成的,所以页面上不存在<form>标签。
故使用XMLHttpRequest Level 2的一个新接口FormData。
如下测试代码:
var formData = new FormData();
formData.append('file', files);
$.ajax({
url: '/jsonUpload',
type: 'POST',
cache: false,
data: formData,
processData: false,
contentType: false
}).done(function(res) {
}).fail(function(res) {});
搞定。
网友评论