我想在用户右键单击时更改另存为对话框文件名

时间:2013-07-02 09:51:30

标签: php javascript jquery save-as

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

1 个答案:

答案 0 :(得分:2)

浏览器在保存对话框中提供的文件名可以更改,但不能在Javascript中更改。通常,当您不提供指向图像的直接链接时,这是完成的,但使用的是PHP脚本,例如< img src =“image.php?id = 18”>

要执行此操作,您只需在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标题中指定“attachment”而不是“inline”,浏览器将不会尝试显示图像,但会立即提示用户下载。