2009-07-20 139 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

回答