我试图将自定义徽标上传到我的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上设置了读取和写入权限,但它仍然不起作用。
答案 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目录存储临时文件,因此必须能够编写和修改此文件夹中的文件。
C:\ inetpub \ wwwroot \ Drupal&gt; md sites \ default \ files
答案 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完全控制(过度杀伤?可能!)之后,我就可以上传图像了!