使用“打开方式”命名从 Canvas 保存的 PNG 文件。对话

发布于 2024-11-08 05:24:48 字数 637 浏览 0 评论 0原文

我正在使用画布,我可以将画布保存为 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

执着的年纪 2024-11-15 05:24:48

如果您的目标仅是现代浏览器并且不太关心跨浏览器,则有一个可能的解决方案,具有元素的“下载”属性。
这里有一个示例供您参考:

<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 的教程了解更多详细信息。

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:

<a target="_blank" href="https://www.google.com/intl/en_com/images/srpr/logo3w.png" download="testXXX.jpg">DOWNLOAD ME!</a>

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.

金兰素衣 2024-11-15 05:24:48

不幸的是没有。目前 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.

给我一枪 2024-11-15 05:24:48

的说法,在现实世界的 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文