我用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扩展名。有人知道我做错了什么吗?
1条答案
按热度按时间de90aj5v1#
解决方案是卸载POST变量,在会话中保存数据并重新加载页面,或者基本上实现PGR模式,这可以防止双重POST提交等。
对于我的网站,我在PHP循环中为图像生成HTML标签,网站由一个简单的表单保护,它解决了图像无法下载“保存为”功能的问题(Chrome最新版和Edge也是如此,其他未测试)
我的解决方案Pattner在这里被盗:How to delete $_POST variable upon pressing 'Refresh' button on browser with PHP?