使用PHP通过ajax上传文件的问题

时间:2009-07-20 01:43:39

标签: php jquery ajax cakephp file-upload

在开始之前,请注意我必须更新不属于我的网站,因此我无法重做整个逻辑。如果我这样做,我会采用不同的方式。

我有一个带有很多字段的表单的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发送这个“$ this-&gt; data ['FileUpload'] ['file']”我猜这是关键问题因为我不知道对象是什么通过这里:

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

我整个晚上一直在这里,任何帮助将不胜感激

2 个答案:

答案 0 :(得分:3)

总结:javascript无法访问选择上传的文件的内容。

本文介绍如何为文件上传获取“ajax效果”:Is it possible to use Ajax to do file upload?

答案 1 :(得分:0)

尝试uploadify,它是JQuery Ajax上传系统。使用方便。 http://www.uploadify.com/