我在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。
答案 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)
也许这可以帮助......
在PHP文件夹中找到并打开php.ini(在我的情况下为c:\Program files(86)\PHP
)
搜索upload_tmp_dir
字并执行以下两项任务之一
- 可信度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用户并为此设置完整权限 - >接受按钮。
我认为这可以帮助别人。