错误在drupal中上传图像

时间:2014-05-12 07:11:24

标签: php drupal drupal-7

我试图将自定义徽标上传到我的drupal站点,该站点使用PHP在IIS 8上运行 我收到以下上传错误:

<小时/> " Warning: move_uploaded_file(temporary://logo.png): failed to open stream: "DrupalTemporaryStreamWrapper::stream_open" call failed in drupal_move_uploaded_file() (line 1642 of C:\inetpub\wwwroot\drupalfull\includes\file.inc). Warning: move_uploaded_file(): Unable to move 'C:\Windows\Temp\php25C3.tmp' to 'temporary://logo.png' in drupal_move_uploaded_file() (line 1642 of C:\inetpub\wwwroot\drupalfull\includes\file.inc). File upload error. Could not move uploaded file." 请帮我。我已经在IIS上设置了读取和写入权限,但它仍然不起作用。

4 个答案:

答案 0 :(得分:1)

创建sites / default / files / tmp文件夹并授予完全权限(777)并更改&#39;临时目录&#39;在admin / config / media / file-system。

我认为它解决了你的问题。

问候。

答案 1 :(得分:0)

您的问题很可能是drupal中的权限问题。由于您使用的是Windows系统,因此需要确保文件夹sites / default / files 具有IIS服务器的可写权限。为所有用户配置可写入的权限,并查看它是否正常工作,然后逐步限制权限,直到您感到舒服为止。

答案 2 :(得分:0)

如果您运行的是ISS8(Web服务器),则文件路径与Unix的默认路径不同。 确保在Drupal中的设置上正确设置了临时文件夹,并且该文件夹具有写入权限。

您可以在第5步和第6步执行本文。 创建文件夹:

Drupal使用Sites \ Default \ Files目录存储临时文件,因此必须能够编写和修改此文件夹中的文件。

  1. 创建文件夹:
  2. C:\ inetpub \ wwwroot \ Drupal&gt; md sites \ default \ files

    http://www.iis.net/learn/application-frameworks/install-and-configure-php-applications-on-iis/install-drupal-on-iis

答案 3 :(得分:0)

我要在这里再说一个答案,因为我保证我会忘记我是如何修理的!

基本上,在Windows上,PHP的默认上传文件夹是C:\ Windows \ Temp。作为Drupal上传的一部分,它将文件从PHP上传文件夹移动到Drupal Temporary //:文件夹。但是在PHP中存在一个问题,即PHP可执行文件需要对上载文件的完整路径具有读取权限,因此C:\ Windows \ Temp。如果没有给出,则会出错并且不会移动文件。

详细信息位于http://php.net/manual/en/function.realpath.php,这是Drupal上传文件代码中深入的函数调用。

我的修复是在别处创建一个文件夹,比如C:\ PHPTemp,并修改PHP的设置(session.save_path和upload_tmp_dir)来指向这个文件夹。在给IIS_IUSRS完全控制(过度杀伤?可能!)之后,我就可以上传图像了!