Javascript Blob更改文件

时间:2014-03-26 18:19:22

标签: javascript jquery blob

除了我读过的here之外,我对JavaScript中的Blob对象没有任何先验知识,但需要使用它们将一串二进制数据转换为.xls文件,然后我将其提供给用户。问题是,当我构建一个blob,获取位置,并打开文件来查看它时,它开始说

  

您尝试打开的文件格式不同   由文件扩展名指定。验证文件不是   在打开文件之前损坏并来自受信任的来源。

(我知道这些数据不正确,因为当我正常提交表单时,我会正确地获取文件并且没有这个问题)

这是在ajax调用中完成的,而success函数参数数据是二进制数据。

$("#fileForm").submit(function(){
    var fileData = $("#fileInputElmt").prop("files")[0];
    var data = new FormData();
    data.append("upload",fileData);
    var url = "process.action?" + $("#fileForm").serialize();
    $.ajax({
        type: "POST",
        url:url,
        data:data,
        cache:false,
        contentType:false,
        processData:false,
        success:function(data){

            var bb = new Blob([data],
                 { type: 'application/vnd.ms-excel',endings:'native'});
            var bUrl = URL.createObjectURL(bb);
            window.open(bUrl,"_self");

            hideProgressBar();
        },error:function(data){
            hideProgressBar();
        }
    });
    return false;
});

我做错了吗?或者有更好的方法吗?

0 个答案:

没有答案