javascript - 通过ajax发送blob数据

标签 javascript ajax blob

所以我尝试通过 ajax 将图像作为 blob 发送。该 blob 具有正确的类型,大小约为 4.5 kb。我尝试像这样发送:

document.getElementById("canvas").toBlob(function (blob) {
    var data = new FormData();
    data.append('name', name);
    data.append('program', YouTomaton.Main.get_CurrentProgram());
    data.append('image', blob);
    $.ajax({
        type: "Post",
        url: "save.php",
        data: data,
        processData: false,
        contentType: false,
        success: function (result) {
            if(result != undefined && result.length > 0)
                alert(result);
        }
    });
});

接收页面如下所示:

<?php
include("session.php");
writeProgram($_POST['name'], $_POST['program'], $_POST['image']);
?>

它告诉我找不到索引“图像”。所以不仅数据没有发送,甚至连索引也被省略了。我做错了什么?

编辑:toBlob 和 toDataURL 都不会生成除空 PNG 之外的任何内容。有没有办法将帧缓冲区中的数据转换为 Base64 编码的 jpg 或 png ?

最佳答案

阅读this 。然后想想你想做什么。

如果你可以使用 jQuery 插件。我建议使用 FileUpload

对于 HTML 文件输入,最小语法如下:

<input type="file" name="fs" id="fileupload" />

和 JS 脚本:

$('#fileupload').fileupload({
                url: "fileupload?additional=data",
                done: function (e, data) {
                    console.log(data.result);
                }
            }).prop('disabled', !$.support.fileInput)
                .parent().addClass($.support.fileInput ? undefined : 'disabled');

关于javascript - 通过ajax发送blob数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30686829/

相关文章:

javascript - 使用 JavaScript/jQuery 更改 !important 属性

javascript - 固定 header 在滚动时在 iPhone 包装器中向下移动

php - 如何通过 jquery 获取动态创建的 javascript div id 并存储在 php 中?

php - 在 jquery 中添加 ajax 后 OnClick 不起作用

java - 将图像添加到 sqlite 数据库

javascript - 如何在javascript中找到数组最大值的所有索引?

javascript - 为什么要将 Redux Action 创建者返回的 Action 括在括号中?

javascript - 如何使用ajax post请求从输入中放入参数?

MySQL - Base64 与 BLOB

python - 从 blob 音频 django 创建一个 wav 文件