首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Node.js中如何将多部分/表单数据上传的图像转换为base64格式

在Node.js中如何将多部分/表单数据上传的图像转换为base64格式
EN

Stack Overflow用户
提问于 2011-06-20 02:52:48
回答 2查看 2.8K关注 0票数 2

我希望允许用户从其本地文件系统中选择一个图像,然后将该图像呈现到页面上的画布元素。

由于安全约束(‘沙盒’浏览器安全模型),客户端javascript不能直接访问文件系统上的图像,因此它必须从文件上传控件以'multipart/form-data‘的形式往返到服务器。

实际上,我不想将此图像保存在服务器上并将其发送出去,因为它只用于一次性的客户端操作目的。因此,我想知道是否有可能将服务器端的图像数据转换为base64编码的表示形式,然后将其发送回客户端。然后,我可以轻松地将其作为数据URL绘制回客户端,而无需将图像保存在服务器上的任何位置。还是有更好的方法?

我在服务器上使用node.js。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-20 03:23:41

我不认为有必要将其保存在服务器上或产生Base64 encoding a data URI的开销;只需在内存中存储足够长的时间供客户端下载即可。因此,您的序列将如下所示:

  1. 客户端通过"multipart/ form - data“提交上传图像。
  2. 当服务器接收到表单时,它生成一个”丢弃“的网址(例如,可以作为对#1中的请求的响应主体返回);图像文件数据简单地存储在内存中。
  3. 客户端可以从#2中的URL检索图像数据。
  4. 当客户端在#2中请求URL时,服务器只是回显图像数据;完成请求后,服务器可能会删除数据引用,从而释放内存。

请注意,由于node.js和AJAX请求的异步性质,项目1-4可以并发完成(尽管“丢弃”URL可能必须与表单post分开才能真正工作)。

票数 0
EN

Stack Overflow用户

发布于 2011-06-20 02:57:05

转到https://github.com/joyent/node/wiki/modules,获取一个base64编码库,然后简单地回显data:image/png;base64,,后跟base-64编码文件,用任何合适的(gif/jpeg)替换"png“。

“更好”的方法是将文件实际放到一个tmp文件夹中,回显一个指向该文件的链接,然后删除该目录中所有超过X分钟的文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6404448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档