我希望允许用户从其本地文件系统中选择一个图像,然后将该图像呈现到页面上的画布元素。
由于安全约束(‘沙盒’浏览器安全模型),客户端javascript不能直接访问文件系统上的图像,因此它必须从文件上传控件以'multipart/form-data‘的形式往返到服务器。
实际上,我不想将此图像保存在服务器上并将其发送出去,因为它只用于一次性的客户端操作目的。因此,我想知道是否有可能将服务器端的图像数据转换为base64编码的表示形式,然后将其发送回客户端。然后,我可以轻松地将其作为数据URL绘制回客户端,而无需将图像保存在服务器上的任何位置。还是有更好的方法?
我在服务器上使用node.js。
发布于 2011-06-19 19:23:41
我不认为有必要将其保存在服务器上或产生Base64 encoding a data URI的开销;只需在内存中存储足够长的时间供客户端下载即可。因此,您的序列将如下所示:
请注意,由于node.js和AJAX请求的异步性质,项目1-4可以并发完成(尽管“丢弃”URL可能必须与表单post分开才能真正工作)。
发布于 2011-06-19 18:57:05
转到https://github.com/joyent/node/wiki/modules,获取一个base64编码库,然后简单地回显data:image/png;base64,
,后跟base-64编码文件,用任何合适的(gif/jpeg)替换"png“。
“更好”的方法是将文件实际放到一个tmp文件夹中,回显一个指向该文件的链接,然后删除该目录中所有超过X分钟的文件。
https://stackoverflow.com/questions/6404448
复制相似问题