所以我尝试通过 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/