2011-03-11 137 views
0

這裏是我的非工作的嘗試:如何使用jQuery的ajax函數與PHP上傳文件?

<?php 

$action = $_GET['request']; 

switch($action) { 

    case 'upload-image': 

     $imageFile = $_GET['file']; 

     $name = $_FILES[$imageFile] ['name']; 
     $tmpLocation = $_FILES[$imageFile] ['tmp_name']; 

      $upload = move_uploaded_file($tmpLocation, "files/$name"); 
      echo ($upload) ? $name.' uploaded successfully!' : 'File not uploaded.'; 

    end; 

} 

?> 

我得到沒有上傳信息文件:

<script> 
    function uploadImageSubmit() { 

     var imageFile = $('.imageFile').val(); 

     $.ajax({ 

      url: 'ajax.php?request=upload-image&file='+imageFile, 
      success: function(output) { 
       alert(output);      
      } 

     }); 

    } 
</script> 

<h2>Upload File</h2> 

<form> 
    <input type="file" class="imageFile" /> 
    <a onClick="uploadImageSubmit()">Upload</a> 
</form> 

的 「ajax.php」 的代碼。我認爲這是因爲即使字符串可以通過url傳遞,文件路徑也不能出於某種原因。但後來我不知道爲什麼它不起作用。有人可以找出有什麼不對嗎?

+0

我想阿賈克斯有一些文件上傳的問題http://jquery.malsup.com/form/#file-upload – 2011-03-11 06:26:21

回答

0

實際上,HTML5 and the new File API確實支持通過XmlHttpRequest進行上傳。它在Firefox 4和Chrome中運行得非常漂亮。

0

XmlHttpRequest不支持上傳文件。你需要使用一些隱藏的iframe或Flash解決方案。

0

您不能使用普通的JS/AJAX上傳文件。一個已知的技巧是將您的文件發佈到隱藏的iframe並更新iframe。