Chrome 浏览器上使用 PHP 生成的 PNG 图像时出现“失败 - 网络错误”

问题描述 投票:0回答:1

我用PHP创建图像并按以下方式输出

$im = imagecreatetruecolor($w,$h);
...
header('Content-type: image/png');
header('Cache-Control: no-store, no-cache');
imagepng($im);
imagedestroy($im);

如果我在 Chrome 浏览器中右键单击图像并选择“将图像另存为...”,则会收到“失败 - 网络错误”。它不会将图像保存到文件中。如果我对 FireFox、Safari 或 IE 执行同样的操作,则效果很好。 我尝试添加内容处置标题,如下所示:

header('Content-disposition: inline; filename=image.png');

这并没有解决问题。 Chrome 还显示要保存为 .php 文件的文件名,即生成的 PHP 文件的名称,而不是像 FireFox 那样的 .png 扩展名。有人知道我做错了什么吗?

php google-chrome png image-generation
1个回答
0
投票

解决方案是卸载 POST 变量,将内容保存在会话中并重新加载页面或基本上实现 PGR 模式,这可以防止双重 POST 提交等。

对于我的网站,我在 php 循环内为图像生成 html 标签,并且该网站受到简单表单的保护,它解决了我无法使用“另存为”功能下载图像的问题。

我的解决方案 pattner 在这里被盗:如何使用 PHP 在浏览器上按“刷新”按钮删除 $_POST 变量?

© www.soinside.com 2019 - 2024. All rights reserved.