【问题标题】:imagejpeg save file does not workimagejpeg 保存文件不起作用
【发布时间】:2012-07-19 23:35:53
【问题描述】:

我设法在浏览器上显示图像,但我无法使用 imagejpeg 保存它(我没有看到任何图像保存在服务器中)。我已经尝试了几个小时,并且还使用 is_writable 测试了该文件夹,正如其他人在PHP imagejpeg save file doesn't work 提出的这篇文章中提到的那样。 但它仍然不起作用,在 chrome 上,我没有看到任何错误,除了损坏的图像图标,但在 IE 上,它显示这样的错误 “警告:imagejpeg() [function.imagejpeg]:无法打开”文件不可写

这是我的代码。

header('Content-type: image/jpeg');
$filename = 'little.jpg';
 $im = imagecreatefromjpeg($filename); 
imagefilter($im, IMG_FILTER_CONTRAST,$_POST["amount"]);

imagejpeg($im,"test.jpg");   

imagedestroy($im); 

if (is_writable('test.jpg')) {
    echo 'The file is writable';
} else {
    echo 'The file is not writable';
}

有人可以帮忙吗?谢谢你。 P.S:我也想在浏览器上显示图片,同时保存图片。 imagejpeg 能做到吗?如果没有,有更好的方法吗?谢谢。

编辑:当我检查我的文件夹是否可写时,它回显“文件可写”,但当我检查 test.jpg 是否可写时,它回显“文件不可写”。

【问题讨论】:

    标签: php jpeg


    【解决方案1】:

    该错误表明您的 PHP 脚本无权写入服务器上的该位置。使用您的 FTP 软件进行 CHMOD(更改权限)以允许写入您尝试存储这些文件的目录。除非您的虚拟主机完全禁止 PHP 在本地写入文件(在这种情况下,您应该与他们交谈)并查看可用的选项)。

    【讨论】:

    • 如何更改权限?但是当我测试它应该写入的文件夹时,它会回显为“它是可写的”。我测试如下: if (is_writable('./')) { echo '该文件是可写的'; } else { echo '文件不可写'; }
    • is_writable() 应该指向一个目录,而不是一个文件名字符串......所以无论如何都会混淆。权限是在您的 FTP 软件中设置的,但它们的工作方式都不同。您想找到“权限”或“CHMOD”的内容,并将其设置为 755,用于存储图像的目录。此外,我通常使用完整的服务器路径来存储文件......在大多数情况下它不是“必要的”,但如果某些事情没有按照我认为的那样进行,它确实给了我更好的调试数据。我使用类似: $filename = $_SERVER['DOCUMENT_ROOT'].'/images/test.jpg';
    • 非常感谢您的回答。由于您的回答,我设法解决了它实际上是服务器问题。
    猜你喜欢
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    • 1970-01-01
    • 2016-04-14
    • 1970-01-01
    相关资源
    最近更新 更多