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

Php 我想在用户右键单击时更改“另存为”对话框的文件名,php,javascript,jquery,save-as,Php,Javascript,Jquery,Save As,我正在为我的项目使用PHP和javascript/jQuery。当用户右键单击图像并选择“另存为”时,我想更改“另存为”对话框的文件名。(例如,我想将每个“保存对话框”的文件名命名为“image.png”)。提前感谢。可以更改浏览器在“保存”对话框中提供的文件名,但不能使用Javascript。通常,当您不提供图像的直接链接,而是使用诸如 为此,您只需在image.php中发送正确的http头,例如: header('Content-type: image/jpg'); header('Cont

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

可以更改浏览器在“保存”对话框中提供的文件名,但不能使用Javascript。通常,当您不提供图像的直接链接,而是使用诸如

为此,您只需在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)。“?=”

如果在内容处理标题中指定“附件”而不是“内联”,浏览器将不会尝试显示图像,但会立即提示用户下载图像。

右键单击菜单和默认文件名由浏览器控制,您不能对其产生任何影响(当然除了更改URL中的文件名之外)。谢谢。我会尝试另一种方法。@Jon我很确定你可以阻止默认的鼠标点击行为,然后自己做thing@slash197:你可以,但那是可怕的做法,我要假装它不存在。别管网络!;-)说真的,取消浏览器的菜单并在JS中显示自己的菜单无助于解决此问题。