我正在使用这样的方法通过 AJAX 将画布图像上传到我的服务器:
myCanvas.toBlob( function( blob ) {
var fdata = new FormData( );
fdata.append( 'myFile', blob );
$.ajax( {
url: 'http://myScript.foo',
type: 'POST',
data: fdata,
processData: false,
contentType: false
} );
}, 'image/jpeg', 0.9 );
(感谢https://stackoverflow.com/a/8244082/1180785)
但根据 Mozilla 的说法,
toBlob
[…] 返回一个Blob
表示画布中包含的图像的对象;该文件可以缓存在磁盘上或存储在内存中,由用户代理决定
( https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement )
对于我的程序来说,不保留图像非常重要(不是作为限制,而是作为隐私问题)。所以我需要知道是否可以保证删除这个可能的缓存副本,以及何时删除。还有一个潜在的风险是取消删除程序找到它,所以我想知道我是否可以覆盖数据或以其他方式强制安全删除。
如果可以在不冒险使用本地缓存副本的情况下获得相同的结果,那就更好了。如果可能的话,加密也是一种选择。
我只关心现代浏览器,getUserMedia
特别支持,所以没有 IE(我有一个用于处理内存中所有内容的旧浏览器的 Flash 后备)。