使用“打开方式”命名从 Canvas 保存的 PNG 文件。对话
我正在使用画布,我可以将画布保存为 png。
通过环顾四周,我发现了 W3C 提供的很棒的 toDataURL() 函数。
我也已经在使用 nihilogic 的 canvas2image,我们可以在此页面上找到它: http://www.nihilogic .dk/labs/canvas2image/
我注意到在canvas2image上,开发人员使用“image/octet-stream”打开“打开方式”对话框,但出现了一些问题:
-图片名称是由返回的ascii toDataUrl()。
- 下载时文件扩展名是.part
简而言之,当单击按钮时,我会提示“打开方式”对话框,其中包含“myImage.png”之类的内容。
是否可以 ?任何帮助将不胜感激。
编辑:我只能使用Javascript,我不能使用 一些不错的 PHP 技巧
I am working with canvas and I would be able to save my Canvas to png.
By looking around, I discover the great toDataURL() function given by the W3C.
I am also already using the canvas2image from nihilogic that we can found on this page : http://www.nihilogic.dk/labs/canvas2image/
I noticed that on canvas2image, the developpers use the "image/octet-stream" which open the "open with" dialog box but give some problem :
-picture name is the ascii returned by toDataUrl().
-file extension is .part when downloaded
In short, I would prompt the "open with" dialog box with something like "myImage.png" when clicking on a button.
Is it possible ? Any help would be appreciated.
Edit : I have the contraint to use only Javascript, I can't use some nice PHP trick
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您的目标仅是现代浏览器并且不太关心跨浏览器,则有一个可能的解决方案,具有元素的“下载”属性。
这里有一个示例供您参考:
只有一行,没有 javascript,是的!您可以将 href 部分更改为数据 url,这也有效。
查看Eric 的关于 html5rocks 的教程了解更多详细信息。
if you aim to only modern browsers and don't care cross-browser that much, there's a possible solution with "download" attribute of element.
Here's one sample for your information:
Only one line, no javascript, yeah! You can change the href part into data url, and that works too.
Check this Eric's tutorial on html5rocks for more details.
不幸的是没有。目前
data
URI(由 canvas2image 模块使用;实际上非常简洁)不支持指定文件名或内容处置标头,因此强制浏览器生成另存为< /em> 对话框是将 content-type 设置为 octet-stream。Unfortunately not. Currently
data
URIs (used by that canvas2image module; quite neat, actually) do not support specifying filename or content-disposition headers, so the only way to force the browser to generate a save as dialog is to set the content-type to octet-stream.的说法,在现实世界的 Web 应用程序中,Hangrui Gau 的解决方案远不能被接受。
嗯,根据http://caniuse.com/ #feat=download
您将拒绝所有 IE、Safari、IOS Safari、Android 用户使用此功能。
我认为考虑到 Canvas2Image 中的这一限制,更好的解决方案是使用一些服务器端逻辑,如下所述 此处
Linuxatico
Well, in the real world web applications Hangrui Gao's solution is far from acceptable, according to
http://caniuse.com/#feat=download
you'll deny this feature to all IE, Safari, IOS Safari, Android's users.
I think that given this limit in Canvas2Image, a better solution is to use some server side logic as explained here
Linuxatico