2013-03-23 84 views
1

因此,我正在一個項目上,我卡住試圖上傳文件。我已經通過多個教程並將代碼複製到netbeans中,以查看它是否會發現任何錯誤。一切似乎沒問題,但該文件上傳後不在目標文件夾中,我無法弄清楚爲什麼。文件上傳似乎工作,但文件不在目標文件夾

我是ajax發佈文件。這裏是我的HTML和jQuery代碼:

<html> 
<head> 
    <Script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> 

    <script language="javascript" type="text/javascript"> 

     function submit(){ 

      var $request; 
      var $data = new FormData(document.forms.namedItem("upload")); 

      // abort pending request 
      if ($request) { 
       $request.abort(); 
      } 

      var $form = $("#form"); 
      var $file = $("#file"); 

       // request to /main.php 
       var $request = $.ajax({ 
        url: "main.php", 
        type: "post", 
        data: $data, 
        processData: false, //tell jQuery not to process the data 
        contentType: false //tell jQuery not to set the contentType 
       }); 

       // on success 
       $request.done(function (response, textStatus, jqXHR){ 
        $("#responseField").html(response).show(); 
       }); 

       //on failure 
       $request.fail(function (jqXHR, textStatus, errorThrown){ 
        console.error(
         "The following error occured: "+ 
         textStatus, errorThrown 
        ); 
       }); 

    }; 
    </script> 

</head> 
<body> 
    <h1>Prototype Upload Page</h1><br/> 
    <form enctype="multipart/form-data" method="post" id="upload"> 
     Select .csv file: <input type="file" name="file" id="file"> 
    </form> 
    <input type="submit" id="submit" name="submit" value="submit" onclick="submit()"/> 
    <br><textarea id="responseField" rows="4" cols="75"> file upload response: </textarea><br/> 
</body> 

的職位被貼到我的我的服務器上main.php。這是代碼。

<?php 

if (!empty($_FILES["file"]["name"])) { 
    uploadFile(); 
} 

Function uploadFile() { 
    if ($_FILES["file"]["error"] > 0) { 
     echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; 
     } 
     else { 
     echo "Upload: " . $_FILES["file"]["name"] . "\n"; 
     echo "Type: " . $_FILES["file"]["type"] . "\n"; 
     echo "Size: " . ($_FILES["file"]["size"]/1024) . "kB\n"; 
     echo "Temp file: " . $_FILES["file"]["tmp_name"] . "\n"; 

     if (file_exists("uploads/" . $_FILES["file"]["name"])) { 
      echo $_FILES["file"]["name"] . " already exists. "; 
      } 
     else { 
      move_uploaded_file($_FILES["file"]["tmp_name"],"C:/inetpub/wwwroot/test1/afterbreak/uploads/test.csv"); 
      echo "Stored in: " . "uploads/" .$_FILES["file"]["name"]; 
      } 
     } 
} 
?> 

我找不出什麼問題。我花了大量時間閱讀教程,試圖讓這個工作。如果有人能幫助它,將不勝感激!

+1

用戶帳戶是否擁有該文件夾的寫入權限?運行應用程序的用戶,而不是登錄用戶。 – twoleggedhorse 2013-03-23 02:35:55

+0

@twoleggedhorse:你說得對。 OP,請檢查您是否有試圖將文件移動到的文件夾的寫入權限。 – Tarik 2013-03-23 02:36:49

+0

再加上檢查文件夾是否存在。你正在上傳的文件是否有'test.csv'?從理論上講,任何上傳的'tmp_name'文件將被命名爲'test.csv'。 – 2013-03-23 02:37:07

回答

1

你有一個硬編碼目的地在你移動上傳文件move_uploaded_file($_FILES["file"]["tmp_name"],"C:/inetpub/wwwroot/test1/afterbreak/uploads/test.csv");。我想你想要"uploads/" . $_FILES["file"]["name"]

+0

我最初是將它作爲目的地,但它不能正常工作,所以我試圖對目的地進行硬編碼,以查看它是否可以起作用。我認爲一些評論者對於這是一個權限問題是正確的。這是我能想到的唯一想法。 – user2201321 2013-03-23 19:04:13

相關問題