如何使用dataURL在服务器上创建映像文件?

时间:2013-11-13 01:18:42

标签: javascript node.js post

在我的应用程序中,我使用了用户可以绘制图像的画布。在保存按钮上,我从画布中获取dataURL。现在我想将用户创建的图像保存在服务器上(node.js)。 我看过Node file system documentation,但我不确定我能/应该使用什么!到目前为止,我只使用表格将数据发布到服务器,现在我需要点击保存按钮发布数据,我该怎么办?

1 个答案:

答案 0 :(得分:0)

所以答案分为两部分,

客户端行为和服务器行为。这里缺少很多原始信息。

首先,我们假设您有一种机制,可以在将内容转换为图像“文件”或数据存储区中的二进制内容(或svg的xml等)时,以其所需格式获取内容的原始流。如果您有原始流内容,那么您将使用标准的XmlHttpRequest将内容发布到网址。在node.js进程中,您需要一个路由和一个函数,它将“捕获”流内容并将其保存在您的存储机制中(文件,db作为blob,导出到外部服务等)。

因此,当您询问如何在客户端,通过使用XmlHttpRequest(dojo.xhr,jQuery.ajax等)发布到URL时,将原始内容以编程方式作为帖子的“正文”流出。将函数绑定到dom元素的onClick方法,该方法获取图像内容并将其发布到服务器URL。

jQuery('#postDiv').click(function() {
    jQuery.ajax({
       type : 'POST',
       url : '/myapp/image/<id>',
       data : someComponentInMyPage.getImageContent(),
       success : function() { // show the user it worked },
       datatype : 'image/png' // or whatever format is coming out
    });
 });

在服务器上,获取输入流并将其写入文件,这将取决于您在节点端使用的框架/模块。