【问题标题】:i want to change the save as dialog filename when the user right clicks我想在用户右键单击时更改另存为对话框文件名
【发布时间】:2013-07-02 09:51:30
【问题描述】:

我在我的项目中使用 PHP 和 javascript/jQuery。当用户右键单击图像并选择另存为时,我想更改另存为对话框的文件名。 (例如,我想将每个“保存对话框”文件名命名为“image.png”)。提前致谢。

【问题讨论】:

  • 右键菜单和默认文件名由浏览器控制,你不能对它们有任何影响(当然除了改变URL中的文件名)。
  • 谢谢。我会试着想一个不同的方法。
  • @Jon 我很确定你可以阻止鼠标点击的默认行为并做你自己的事情
  • @slash197:你可以,但这是可怕的做法,我会假装它不存在。别管网络了! ;-) 说真的,取消浏览器的菜单并在 JS 中显示你自己的菜单并不能解决这个问题。

标签: php javascript jquery save-as


【解决方案1】:

浏览器在保存对话框中提供的文件名可以更改,但不能在 Javascript 中更改。通常这是在您不提供图像的直接链接时完成的,而是使用 PHP 脚本,例如

为此,您只需在 image.php 中发送正确的 http 标头,例如:

header('Content-type: image/jpg');
header('Content-Disposition: inline; filename="' . $filename . '"');

如果您使用非 ASCII 文件名,则需要对其进行编码,不幸的是,不同浏览器的编码不同:

  • 对于 IE 使用 rawurlencode($filename)
  • 对于 FF,使用带有字符集规范的 base64,例如 '=?UTF-8?B?'.base64_encode($filename).'?='

如果您在 Content-Disposition 标头中指定“附件”而不是“内联”,浏览器将不会尝试显示图像,而是会立即提示用户下载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 2018-02-03
    • 2015-10-19
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多