PHP无法打开上传的文件

时间:2015-10-04 19:34:32

标签: php web ubuntu-12.04 lampp

我有带灯的Ubuntu服务器 当我上传像xls或图像的文件时它工作正常,但当我试图打开它时,我说Excel文件已被破坏。图像

也是如此

php是否可以更改文件?

/ var / www / publick_html / uploads的权限是777

3 个答案:

答案 0 :(得分:0)

问题出在apache和php的版本中。 apache的版本是2.2,php是5.4 我将我的apache升级到2.4版本,现在工作正常。

答案 1 :(得分:0)

嗯,我知道,我使用的是Windows,也许这是非常OFF TOPIC,但我对上传的文件有一个相似的问题,我的经验对其他人有用。

在我的情况下,上传的文件无法打开,因为它是先写入的 C:\ WINDOWS \ TEMP 然后移动到上传目录,但我的临时文件夹没有权限访问它。事实上,如果我点击临时文件夹,我会看到:

enter image description here

点击“继续”后,问题解决了!

答案 2 :(得分:0)

这应该可以解决无法在SQL SERVER上使用PHP打开上传的文件的问题。它解决了我的问题。

在Microsoft IIS上使用PHP时,您可能会遇到以下问题:即使所有文件夹权限似乎都正确,也会从move_uploaded_file函数获取权限被拒绝的错误。我必须设置以下内容才能使其正常工作:

  1. 通过IIS管理控制台在文件夹上写入权限。
  2. 在文件夹的安全设置中为IUSR_'server'写入权限。
  3. 在该文件夹的安全设置中为“域用户”写权限。

由于我的应用程序本身位于安全文件夹中,因此需要第三项设置-使用身份验证(“基本”或“ Windows集成”)来标识用户。上载发生时,IIS似乎正在检查这些用户是否具有对该文件夹的写访问权限,而不仅是Web服务器(IUSR_'server')是否具有访问权限。

此外,请记住在IIS管理控制台中将“执行权限”设置为“无”,这样人们就不能上载脚本文件,然后再运行它。 (也建议对上传的文件进行其他检查,但是“不执行”是一个好的开始。)

参考https://www.php.net/manual/en/features.file-upload.php