1

php mySQL

嗨,我有一个有趣的问题。我的 cms 中有一个表单,允许管理员将图像上传到服务器。该脚本将图像大小调整为缩略图(170 像素高度)和大图像(600 像素高度)。缩略图大小约为 16000k,大图像大小约为 160,000k。我没有设置文件权限,只是让它自动发生。当我访问该站点时,我可以看到缩略图,但看不到完整尺寸的图像,并且我已将问题追溯到文件权限。缩略图具有 rw-rr 权限,较大的图像具有 rw-- -- -- 权限。即公众无权查看大图。我使用原始名称保存大图像,并在末尾附加 _thumbnail 保存缩略图。为什么大图片的权限在同一个脚本上传和调整大小时以及我没有设置文件权限时会有所不同?大小和它有关系吗?我只在将图像上传到生产服务器时遇到这个问题,而不是在我的本地机器上工作时。谢谢安德鲁

4

2 回答 2

2

你是如何调整图像大小的?你在使用外部程序吗?

这只是一个猜测,但这里有

  1. 管理员通过您的表单上传 image.jpg
  2. php 脚本将上传的 image.jpg 作为 rw- --- --- (600) 写入文件系统
  3. php 脚本调用图像缩放程序来创建 image_thumbnail.jpg
  4. 图像调整器将 image_thumbnail.jpg 写入 rw- r-- r-- (644)
  5. php 脚本调用图像调整程序来创建调整大小的 image.jpg
  6. 图像调整器覆盖 image.jpg,但将权限保留为 rw- --- --- (600)

为了验证这个理论,将image.jpg调整为600px的部分注释掉,然后检查原始上传图片的权限。如果他们是600,那么这就是你的问题。

无论如何,一个简单的chmod将解决您的问题。

于 2009-12-07T04:47:07.283 回答
0

我建议你先看看你的 php.ini 文件

;Maximum allowed size for uploaded files.
upload_max_filesize = 10M
;Maximum size of POST data that PHP will accept.
post_max_size = 10M

默认设置为 2M。你需要像我在这里提到的那样改变它。如果它仍然无法正常工作,请返回。

于 2009-12-07T04:45:51.853 回答