2009-07-20 181 views
2

開始之前,請注意,我必須更新一個不屬於我的網站,因此我無法重做整個邏輯。如果我這樣做,我會做不同的事情。使用PHP通過ajax上傳文件

我有一個cakephp應用程序,有很多字段的窗體。在此表單中,您可以瀏覽文件並將其保存爲異步。下面是它是如何做:

<input type="file" name="data[FileUpload][file]" id="myFileToUpload"> 
<a id="pickFile" href="#">Upload&nbsp;Now</a> 

<script type="text/javascript"> 
    $('#pickFile').click(function (e) { 
     e.preventDefault(); 
     $.post(
      "/admin/FileUploads/saveFromFlash/<?php e($session->id()) ?>", { 
      data: $("#myFileToUpload").val() 
     }, function (data) { 
      $("#returnedContentFromAjax").html(JSON.stringify(data)); 
     }, 
      "json"); 
    }); 
</script> 

稱爲主要功能做到這一點:

$this->FileUpload->save($this->data) 

但這始終返回false和「沒有上傳過」。下面是一個創建錯誤消息的行:

if (!isset($this->data['FileUpload']['file'])) { 
     $this->setUploadError('No upload passed'); 
    return false; 
} 

我不知道如何發送這種「$這 - >數據[‘文件上傳’] [‘文件’]」通過AJAX ......我想這是關鍵的問題,因爲我不知道在這裏可以通過什麼對象:

{ data:$("#myFileToUpload").val() }, 

我一直在這一切晚上,任何幫助將不勝感激

+2

#myFileToUpload是一個INPUT type =「FILE」元素?你不能從javascript訪問文件的內容。看看這個問題:http://stackoverflow.com/questions/543926/is-it-possible-to-ajax-a-file-upload – russau 2009-07-20 01:49:15

+0

argh ...好吧,這是我的結局^^謝謝你的回答 – marcgg 2009-07-20 01:51:46

回答