0

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

4

1 回答 1

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 标头中指定“附件”而不是“内联”,浏览器将不会尝试显示图像,而是会立即提示用户下载它。

于 2013-07-02T11:25:00.547 回答