2010-07-05 102 views
0

我有一個jQuery uploadify腳本的問題,我沒有找到任何解決方案。 我已經將這個腳本集成到了我的項目中,並且在Windows服務器(本地主機)上一切正常,但是當我嘗試在UNIX服務器上運行它並且I/O錯誤升級時。 這隻發生在我嘗試上傳上載文件夾時已經存在的文件。在Windows上,文件被覆蓋,但是我得到的UNIX和I/O錯誤。jQuery uploadify I/O錯誤UNIX

請如果您有任何解決方案,我將非常感激。

這裏是服務器端的代碼,我認爲這是問題(PHP代碼):

if (!empty($_FILES)) { 
    $tempFile = $_FILES['Filedata']['tmp_name']; 
    $targetPath = $_SERVER['DOCUMENT_ROOT'].$_REQUEST['folder'].'/'; 
    $targetFile = str_replace('//', '/', $targetPath).$_FILES['Filedata']['name']; 

    if (file_exists($targetFile)) unlink($targetFile); 
    copy($tempFile, $targetFile); 
    echo "1"; 
} 
+0

歡迎來到SO,請不要忘記訪問http://stackoverflow.com/faq – Reigel 2010-07-05 05:51:19

回答

0

首先幾項檢查:

  • 哪些用戶擁有存在的文件嗎?
  • 哪個用戶擁有該文件所在的目錄?
  • 哪位用戶正在運行您的PHP腳本?
  • 文件本身的權限是什麼?
  • 該文件所在目錄的權限是什麼?

我問這些問題的原因是因爲它可能是一個簡單的權限問題。運行unlink的用戶以及目標文件的文件創建將需要對該目錄的寫入權限。可能是運行腳本的用戶是而不是擁有該目錄或文件的用戶,在這種情況下,您可能需要打開一些權限。

當然,這只是我的猜想,但這是我要找的第一件事。

0

首先,您應該使用move_uploaded_file而不是副本。

但最有可能您的問題是由於權限問題。你可以上傳任何文件到文件夾?你是否檢查過文件夾中的文件(你想覆蓋的文件)與新上傳的文件具有相同的權限?我的猜測是你使用(S)FTP將文件複製到文件夾,並且他們擁有不同的所有者/權限,因此你不能覆蓋它們。

0

除了paxdiablo和wimvds提及的可能的權限問題之外,還請檢查文件名爲&的路徑。與windows不同,unix文件系統區分大小寫。