2012-07-07 369 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可能會失敗,但我並不擔心這一點。