无法在IIS上上传文件

时间:2010-11-16 03:41:39

标签: php iis file-upload

我在GoDaddy的共享托管帐户上它是一个Windows Server,我在尝试上传文件时收到此错误:

Warning: move_uploaded_file(D:\Hosting\6903\html\pdfs\ALDOmypdfAP.pdf) [function.move-uploaded-file]: failed to open stream: Permission denied in D:\Hosting\6903\html\back.php on line 436

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'D:\Temp\php\php98C.tmp' to 'D:\Hosting\6903\html\pdfs\ALDOmypdfAP.pdf

我听说我可以设置我的php.ini文件来更改它立即上传到的目录,这样可行,但是我无法访问我的php.ini文件。

我试图在我的目录的根目录中创建我自己的php.ini文件,它会导致各种问题,例如找不到正确的MySQL配置文件,goDaddy对此的支持是删除自定义php。 ini档案,荒谬,我知道。

我试过像这样使用ini_set

ini_set('upload_tmp_dir', 'D:/Hosting/6903/html/pdfs/');

但它没有产生任何影响。我还有其他选择吗?谢谢!

更新:从Coda开始,Octal权限读取目标目录的777。

5 个答案:

答案 0 :(得分:4)

据我所知,您需要特别为您尝试写入的文件夹提供IUSR_MACHINENAME帐户的写权限,否则它将失败。我不知道Coda是什么,但是它可以让你为特定用户设置权限吗?

答案 1 :(得分:3)

有类似的问题。

通过向用户组“Authenticated User”授予所有权限来修复此问题。

我花了几个小时才意识到这一点。这篇帖子给了我一些提示。

我希望我的分享会帮助别人。

答案 2 :(得分:0)

问题可能来自最终目标目录而不是临时目录。

通常,如果根本无法上传文件,$_FILES['yourfile']['error']将设置为UPLOAD_ERR_CANT_WRITE(7)。从错误消息中,它告诉我们问题是move_uploaded_file无法从临时目录中读取(不太可能),或者写入目标目录(最有可能)。

检查并尝试更改目标目录的权限。

答案 3 :(得分:0)

@Talha - "通过向用户组'经过身份验证的用户'"提供所有权限来解决此问题。这是唯一有效的解决方案。没有其他解决方案即。授予IIS_USR,NETWORK用户等权限没有任何效果。

感谢您的解决方案

答案 4 :(得分:0)

也许这可以帮助......

  1. 在PHP文件夹中找到并打开php.ini(在我的情况下为c:\Program files(86)\PHP

  2. 搜索upload_tmp_dir字并执行以下两项任务之一

  3. - 可信度1

    3.1设置upload_tmp_dir = "[Some folder with full permission for IUSR user]"

    - 可信度2

    3.2在Windows资源管理器中搜索upload_tmp_dir中设置的文件夹(在我的情况下为C:\WINDOWS\Temp

    3.2.1右键点击C:\WINDOWS\Temp - >属性 - >安全 - >编辑按钮 - >添加,然后添加IUSR用户并为此设置完整权限 - >接受按钮。

    我认为这可以帮助别人。