2012-07-07 87 views
0

我一直坚持这段代码几天,因为我在将文件上传到服务器时遇到此错误。它的Apache服务器上运行的Windows服务器使用PHP move_uploaded_file函数权限被拒绝

尝试各种解决方案,但仍然收到错误。我尝试将完整权限更改为该服务器上的所有人。

我改变了默认的PHP上传tmp文件到我的应用程序内,但我仍然有这个错误。

Warning:move_uploaded_file(C:\ My_Workspace \ ojs2002):[function.move-uploaded-file]:未能打开流:在第78行的C:\ My_Workspace \ ojs \ admin \ include \ fileupload.php中拒绝了权限

Warning:move_uploaded_file()[function.move-uploaded-file]:无法将C:\ My_Workspace中的'C:\ My_Workspace \ ojs \ tmp \ phpCB78.tmp'移动到'C:\ My_Workspace \ ojs2002' \ OJS \ ADMIN \包括上线78

// copy the file, making the destination directory if necessary 
$filedir = 'C:/My_Workspace/ojs2002/'.basename($_FILES['articlefile']['name']); 


chmod($_FILES["articlefile"]["tmp_name"], 0777); 
chmod($filedir, 0777);   

move_uploaded_file($_FILES["articlefile"]["tmp_name"],$filedir); 

\ fileupload.php的代码将正常工作在Linux服务器上,但Windows不支持。

任何帮助将非常感激。谢谢。

+0

对不起,如果我误解了,但你有没有将ojs2002的权限更改为777? – Austin 2012-07-07 02:03:09

回答

0

chmod在Windows上不起作用,因为它使用不同类型的权限系统。确保用户Apache运行时,对您要将文件移动到的文件夹具有完全写权限(右击并单击共享或权限取决于windows的版本)

+0

如何找出Apache正在使用哪个用户在Windows上创建/移动文件夹?我正在使用Windows 7.谢谢 – 2012-07-07 02:21:14

+0

@StevenTangTiKhoon按照[这些说明](http://answers.microsoft.com/en-us/windows/forum/windows_vista-files/how-do-i-change-folder-and-文件的权限/ 465f2b42-63dd-4486-8dd1-c870290efeed)。这是为了Vista,但应该大致相同。只需将“Everyone”设置为完全控制,然后查看它是否有效:) – Lusitanian 2012-07-07 02:22:38

+0

嗨,我已经为所有人设置了文件夹的烫发http://imageshack.us/photo/my-images/69/772012115225am.jpg/ ...仍然有错误:( – 2012-07-07 03:55:34

0

我决定从:

move_uploaded_file($uploaded_file, $file_path); 

file_put_contents($file_path, file_get_contents($uploaded_file)); 
@unlink($uploaded_file); 

unlink可能会失败,但我并不担心这一点。