使用“打开方式”对话框命名从 Canvas 保存的 PNG 文件
Name a PNG file saved from Canvas using an "open with" dialog
我正在使用画布,我可以将我的画布保存到png。
通过环顾四周,我发现了W3C给出的很棒的toDataURL()函数。
我也已经在使用虚无学的canvas2image,我们可以在这个页面上找到:http://www.nihilogic.dk/labs/canvas2image/
我注意到在 canvas2image 上,开发人员使用"image/octet-stream"打开"对话框,但会出现一些问题:
-picture name 是 toDataUrl() 返回的 ascii。
- 下载时文件扩展名.part
简而言之,当单击按钮时,我会提示"打开方式"对话框,例如"myImage.png"。
可能吗?任何帮助将不胜感激。
编辑:我有只使用Javascript的禁忌,我不能使用一些不错的PHP技巧
如果您只针对现代浏览器并且不太关心跨浏览器,那么有一个可能的解决方案具有元素的"下载"属性。下面是一个示例供您参考:
<a target="_blank" href="https://www.google.com/intl/en_com/images/srpr/logo3w.png" download="testXXX.jpg">DOWNLOAD ME!</a>
只有一行,没有javascript,是的!您可以将 href 部分更改为数据 url,这也有效。
查看 Eric 在 html5rocks 上的教程以获取更多详细信息。
目前data
URI(由 canvas2image 模块使用;实际上非常整洁)不支持指定文件名或内容处置标头,因此强制浏览器生成另存为对话框的唯一方法是将内容类型设置为八位字节流。
好吧,在现实世界的Web应用程序中,高杭瑞的解决方案是远远不能接受的,根据
http://caniuse.com/#feat=download
您将拒绝所有IE,Safari,IOS Safari,Android用户使用此功能。
我认为鉴于 Canvas2Image 中的此限制,更好的解决方案是使用一些服务器端逻辑,如此处所述
Linuxatico
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 如何将getJson的响应保存在全局变量中
- 按下按钮时保存cookie
- 如何使用heatmap.js保存canvas标记生成的图像文件
- 具有透明度的HTML Canvas putImageData会导致保存不正确的RGB
- 保存Canvas图像(将数据字符串发布到PHP)
- 使用 canvas.toDataURL() 解码和保存图像
- Oracle Apex Canvas to blob in PNG 格式保存到项目
- Canvas只保存图像的一部分,并奇怪地将其拉伸
- 在django——canvas元素中上传并保存用户摄像头截图到文件
- Canvas toDataURL()方法正在保存低分辨率图像
- ASP.使用HTML5 Canvas的.NET绘图应用程序.保存到服务器.JavaScript错误
- 通过canvas将画布保存为图像.toDataURL结果为黑色矩形
- 将HTML Canvas保存为无需客户端浏览器的图像
- html5 canvas -保存路径或剪辑区域以重用
- 将canvas dataurl保存到用户的文件系统中
- 将Canvas图像保存到mysql
- 使用“打开方式”对话框命名从 Canvas 保存的 PNG 文件
- HTML5 Canvas将绘图保存为图像
- 从客户端浏览器将Canvas保存到磁盘上