小编The*_*JBW的帖子

将HTML5画布上传为blob

我有一个画布,我可以毫无问题地绘制到DOM,并为本地用户保存:

storCanvas.toBlob(function(blob) { saveAs(blob, name + ".png");});
Run Code Online (Sandbox Code Playgroud)

(注意:我已经包含了canvas-toBlob.js用于跨平台支持,来自http://eligrey.com/blog/post/saving-generated-files-on-the-client-side)

现在,我想要做的是将相同的canvas元素发送到服务器.我以为我可以这样做:

storCanvas.toBlob(function(blob) {upload(blob);});
Run Code Online (Sandbox Code Playgroud)

上传(blob); 是:

function upload(blobOrFile)
{
    var xhr = new XMLHttpRequest();
    xhr.open('POST', 'upload_file.php', true);
    xhr.onload = function(e) { /*uploaded*/ };

    // Listen to the upload progress.
    var progressBar = document.querySelector('progress');
    xhr.upload.onprogress = function(e) {
        if (e.lengthComputable)
        {
          progressBar.value = (e.loaded / e.total) * 100;
          progressBar.textContent = progressBar.value;
        }
    };
    xhr.send(blobOrFile);

}
Run Code Online (Sandbox Code Playgroud)

(来自:http://www.html5rocks.com/en/tutorials/file/xhr2/ )

现在,我认为我会这样做,但我的PHP页面(我可以成功使用标准HTML表单进行POST)报告(通过firebug)它有一个0kB的无效文件.我认为问题在于我转换为blob,但我不确定正确的方法...

javascript html5

12
推荐指数
2
解决办法
8269
查看次数

标签 统计

html5 ×1

javascript ×1