【问题标题】:How to easily upload files without form submission (with jQuery + AJAX)如何在不提交表单的情况下轻松上传文件(使用 jQuery + AJAX)
【发布时间】:2011-02-02 18:10:54
【问题描述】:

所以我有一些表单处理代码来处理标准文本输入和上传文件(通过 $_FILES 数组)

我想通过 AJAX 完成提交

将 jQuery 的 post().方法仍然通过 -> $_FILES 传递这些东西还是我需要做一些特别的事情?

【问题讨论】:

    标签: php jquery ajax file upload


    【解决方案1】:

    Ajax(定义为使用 JavaScript)无法执行文件上传,因为 JavaScript 无法访问本地文件系统。有一些似乎使用 Ajax 的解决方法,例如 iframe 或使用 Flash。

    在 Google 上四处寻找,您会发现一些东西。有更多的库(例如 YUI)将这些放在一起。

    【讨论】:

      【解决方案2】:

      要通过 Ajax 上传文件,您需要使用 iframe 或 Flash 的解决方法。

      我推荐你Uploadify,它使用flash进行上传,使用jQuery。我喜欢它有很多设置的事实,并且它带有一个很好的队列处理默认样式。只需按照说明在您的站点中进行设置即可。

      在 PHP 脚本中,您将收到 $_FILES 数组中的文件,就像通过表单正常提交一样,默认名称为“Filedata”,因此您可以通过 $_FILES[' 访问您的文件文件数据']。然后只需回显 Ajax 请求(JSON 或 XML)的响应,并为 Uploadify 'onComplete' 事件执行一些 JS 代码。

      【讨论】:

        【解决方案3】:

        您可以尝试使用 HTML 5 的文件上传 API,这需要他们将文件拖放到浏览器窗口中。在这里阅读更多:http://www.appelsiini.net/2009/10/html5-drag-and-drop-multiple-file-upload

        此外,您可以使用 Google Gears 执行相同的操作(需要安装 IE,但在 Chrome 上是默认设置)。

        可以检测到其中任何一个的存在并优雅地降级。

        【讨论】:

        猜你喜欢
        • 2015-09-29
        • 2012-07-05
        • 2012-07-23
        • 1970-01-01
        • 2014-06-15
        • 1970-01-01
        • 2020-04-03
        • 2014-03-26
        相关资源
        最近更新 更多