无法在Windows上打开PHP应用程序生成的文件

时间:2013-05-21 17:58:48

标签: php windows file-upload permissions

当我尝试在Windows机器上打开由CMS生成的文件时,我遇到了问题。它有一个上传功能,可以将文件保存在给定位置(它位于我的用户文件夹中,我应该拥有所有的写入和读取权限)。

我在该文件夹中可以看到的是一个通用缩略图,在这种情况下,每个图像类型的窗口生成的缩略图,PNG和JPEG。我尝试更改de image权限并将其设置为当前计算机用户,但它不起作用。而且我无法将这些文件移动到其他位置(通过FTP将它们上传到服务器)。

我想知道是否有办法改变这种行为。

我注意到的一件事是,如果我复制并粘贴这些文件,我可以正常看到它的内容。我知道我可以对每个人进行重命名,但是该文件夹中有数十个图像...每次上传新图像时都不想做同样的事情。

更新

这只发生在被移动的图像上(我正在使用php的move_uploaded_file函数,顺便说一下),而不是那些生成(生成,调整大小等)的图像。

2 个答案:

答案 0 :(得分:2)

它发生了,因为Windows在移动文件时保留TEMP文件夹的文件权限(通常为c:/ windows / temp)。 为了防止这种情况,您需要更改" upload_tmp_dir" in" php.ini"到您的服务器目录或设置Windows临时文件夹的广泛权限。

答案 1 :(得分:0)

您可能在某些php文件中出错,导致图像无法正确显示。

为了检测问题,我要做的是在php文件中注释header()调用,负责显示图像,并查看是否有除图像数据之外的任何输出。

检查整个输出,只需要一个字符来破坏所有内容,因此检查输出的顶部或底部是否没有空行。如果您有错误日志,请参考,它将帮助您快速跟踪问题。

当我遇到此问题时,通常会在图像生成过程中出现通知或警告,如果您未将错误输出到屏幕,则通知文本将被视为图像数据使浏览器无法解释您的图像。

如果你愿意,我可以仔细看看你,但我需要看看你在php文件中做了什么,以便能够肯定地告诉你。