美文网首页
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