Javascript 将大量画布图像保存到服务器
我有一个脚本,可以从Javascript 将大量画布图像保存到服务器,javascript,html,html5-canvas,Javascript,Html,Html5 Canvas,我有一个脚本,可以从canvas.toDataURL()生成大约250个图像。 我的问题是如何一次保存它们(向服务器发送一个请求),而不是单独发布它们 我需要一种方法将它们打包到单个请求中,然后将它们发送到PHP服务器进行解包。canvas.toDataURL()提供以base64编码的字节数据,它们可以安全地用作字符串并通过HTTP传递 做一些类似于: var images = []; while(....) { images.push(canvas.toDataURL()); } v
canvas.toDataURL()
生成大约250个图像。
我的问题是如何一次保存它们(向服务器发送一个请求),而不是单独发布它们
我需要一种方法将它们打包到单个请求中,然后将它们发送到PHP服务器进行解包。canvas.toDataURL()提供以base64编码的字节数据,它们可以安全地用作字符串并通过HTTP传递
做一些类似于:
var images = [];
while(....) {
images.push(canvas.toDataURL());
}
var imagesJson = JSON.stringify(images);
// pseudo code of jQuery ajax, you can make use of form and a hidden field
// or any other way you'd like to query the server
$.ajax({
....
send:{images:imagesJson}
....
});
对于PHP(其他服务器端语言应该几乎相同):
$images=json\u decode($\u POST['images'],true);
foreach($images作为$image){
$image=base64_解码($image);
文件内容(“”,$image);
}
您可能编写的任何代码。请告诉我们!非常感谢。这对我帮助很大。@TwilightSun:说起来容易,配置和运行起来更难!在您的PHP示例中,对于250张照片,提问者将遇到默认的上载最大文件大小和发布最大文件大小限制,除非图像大小约为90x90px。此外,它们可能会达到默认的最大执行时间限制。如果这些配置和其他配置不正确,PHP将无声地失败(加剧)。@markE会,考虑到这些,我所能想到的就是使用web套接字而不是POST,但是我更喜欢多个POST查询,而不是web套接字。一点也不……答案是正确的。IMHO,当向有Hi-guys的人解释网络操作时。我想问一下,将图片上传到服务器的最佳方式是什么,但是@markE已经开始讨论了。图像大小为320x240,有时脚本会给出php错误或错误500。我想到nodejs和socket.io,但我认为这并不是最好的选择,因为站点和socket.io服务器之间的集成将很困难。
$images = json_decode($_POST['images'], true);
foreach($images as $image) {
$image = base64_decode($image);
file_put_contents('<path to file>', $image);
}