【问题标题】:Issue uploading a file via ajax using PHP使用 PHP 通过 ajax 上传文件的问题
【发布时间】:2010-11-12 04:38:11
【问题描述】:

在开始之前,请注意我必须更新一个不是我的网站,所以我无法重做整个逻辑。如果我要这样做,我会采取不同的做法。

我有一个带有很多字段的表单的 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->data['FileUpload']['file']”...我想这是关键问题,因为我不知道要传递什么对象这里:

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

我整个晚上都在忙,任何帮助将不胜感激

【问题讨论】:

  • #myFileToUpload 是 INPUT type="FILE" 元素吗?您无法从 javascript 访问文件的内容。看看这个问题:stackoverflow.com/questions/543926/…
  • 啊...好吧,这对我来说已经结束了^^谢谢你的回答
  • 即使文件上传是另一种形式,我可以使用表单插件吗?

标签: php jquery ajax cakephp file-upload


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 即使上传者已经在表单中,是否可以使用类似jquery表单的东西?
    • 是的,jquery Form 将抓取您现有表单的操作并发布到该表单。代码示例中有一个文件上传示例:malsup.com/jquery/form/#code-samples
    猜你喜欢
    • 2010-10-18
    • 2017-05-14
    • 2020-11-15
    • 1970-01-01
    • 2021-01-17
    • 2018-12-18
    • 2012-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多