【问题标题】:how to serialize a blob javascript如何序列化 blob javascript
【发布时间】:2013-08-23 04:01:34
【问题描述】:

我需要序列化一些 blob 以发送到 php。我还希望能够在 php 脚本将其发回时对其进行反序列化。 JSON 不会对 blob 的内容进行字符串化,只是对名称、大小等元数据进行字符串化。我该怎么做?

【问题讨论】:

    标签: javascript json serialization blob


    【解决方案1】:

    要发送多个Blobs,您可以将它们append() 发送到FormData 实例,然后您可以使用.send() 发送XMLHttpRequest

    var xhr = new XMLHttpRequest();
    var form = new FormData();
    
    form.append('field-name', blob1);
    form.append('field-name', blob2, 'filename.ext');
    
    // ...
    
    xhr.send(form);
    

    要接收Blob,您可以set the responseType and get the response

    xhr.responseType = 'blob';
    xhr.onload = function () {
        var blob = xhr.response;
    };
    

    有关更多信息,请查看 MDN 的“Sending and Receiving Binary Data”。

    另请注意,所有这些都需要XMLHttpRequest Level 2

    【讨论】:

    • 如何将 blob 发送回客户端?
    • @Markasoftware "PHP write binary response" 应该能够帮助处理服务器端部分。而且,我已经包含了接收Blobs 客户端的详细信息。
    • 好的。谢谢!我仍然更喜欢一种对 blob 进行字符串化而不是直接传输它的方法,但这很好。
    • 谢谢,这主要解决了我的问题。但是,如果我想一次将多个 blob 从服务器传输到客户端怎么办?我知道我可以使用 formdata 轻松地从客户端到服务器执行此操作,但我也想从服务器到客户端执行此操作。
    猜你喜欢
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 2011-05-16
    • 2013-01-23
    相关资源
    最近更新 更多