美文网首页
Ajax把大型json对象以文件流形式post到后台存储

Ajax把大型json对象以文件流形式post到后台存储

作者: 旻璿 | 来源:发表于2017-11-24 11:32 被阅读0次

背景

某项目,前端页面需要存储大型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) {});

搞定。

相关文章

网友评论

      本文标题:Ajax把大型json对象以文件流形式post到后台存储

      本文链接:https://www.haomeiwen.com/subject/hdutbxtx.html