【问题标题】:How to send a file to a server using JSON and jQuery如何使用 JSON 和 jQuery 将文件发送到服务器
【发布时间】:2011-09-02 18:57:42
【问题描述】:

我必须使用 jQuery 将文件发送到我的服务器。如何使用 JSON 来实现?

文件类型并不重要,我打算在我的服务器应用程序上接收一个 byteArray 或类似的东西。

如果它有助于我使用 ASP.NET 应用程序,但我的问题不是我在服务器端处理它的方式,问题是如何使用 jQuery 发送文件数据。

我找到了一些使用 Flash 文件的 jQuery 上传插件,还有一些不使用 Flash,但我真正想知道的是这个过程是如何工作的,而不仅仅是使用某人已经创建的东西!

【问题讨论】:

    标签: jquery asp.net json file-upload upload


    【解决方案1】:

    jQuery 是 JavaScript。我认为您的意思是通过 Ajax 发送数据,这是无法完成的。您可以做的最好的事情是使用 iframe 到将文件上传到临时目录(不是默认临时目录)的页面,然后将有关文件保存位置的信息提供回父页面,然后您使用它.

    无法使用 Ajax 将文件上传到服务器。太不安全了。

    我现在撤回上面的声明

    您现在可以使用 Javascript 发布/下载文件数据,对于新手来说理解起来非常复杂,但现在可能不像回答这个问题时那样

    Using HTML5 file uploads with AJAX and jQuery

    【讨论】:

      【解决方案2】:

      文件上传无法通过 AJAX 请求进行。它需要是一个完整的 HTTP 请求 (POST)。任何使用的 jQuery 插件通常使用基于 Flash 或 Java 的小程序或隐藏 iframe 技巧,其中使用隐藏在页面上的 iframe 完成真正的 POST。

      【讨论】:

        【解决方案3】:

        我已经使用 $.ajaxFileUpload (http://www.phpletter.com/Demo/AjaxFileUpload-Demo/) 进行了尝试,如果您使用的是 ASP.NET MVC,您可以按如下方式检索文件

          public ActionResult UploadFiles(List<HttpPostedFileBase> uFile)
        

        $.ajaxFileUpload 的用法:

          $.ajaxFileUpload
        (
            {
                url: "/Controller/UploadFiles", 
                secureuri: false,
                fileElementId: 'uFile', // the id of the file input controls holding the references to the files
                dataType: 'json',
                success: function (data, status) {
                    // needs to handle the json return
                },
                error: function (data, status, e) {
                    // same as error
                }
            }
        )
        

        对我来说效果很好。

        【讨论】:

          【解决方案4】:

          您可以使用 $.ajax 调用 HTTP Post,您不必做任何手动操作将文件内容转换为 json。如果您的表单包含输入(type="file"),则有效负载将在 HTTP 请求中。如果您可以提供有关您的代码的更多详细信息,我可以发送代码示例。

          【讨论】:

          • 我正在计划这个过程,只是检查这样做的可能性。如果你有一些工作代码,那可以帮助我非常感激。 tnkx
          • 我的问题不是服务器端,我不知道如何使用 jquery 之类的客户端脚本将文件发送到服务器。但我正在使用网络表单
          【解决方案5】:

          我强烈建议为此使用 valum 的 plugin。它有很多支持,并且随着浏览器开始实现 HTML5 支持(例如 FileReader 等)而不断更新。使发送“AJAX”文件请求变得越来越容易。

          https://stackoverflow.com/search?q=valums

          编辑:很抱歉没有完全阅读您的问题 - 我阅读了标题,阅读了前几段并认为我知道您在寻找什么。碰巧最后一段有一个我没有看到的排除条款。

          【讨论】:

          • 正如我所提到的,我想知道这个过程是如何工作的!
          • 糟糕,我以为你在问一个简洁的编程问题。阅读源代码。
          • 非常感谢您的回复,但您我已经提到(最后一段)我对组件没有兴趣!,我有兴趣了解这个过程!
          猜你喜欢
          • 2011-05-06
          • 2020-10-05
          • 1970-01-01
          • 1970-01-01
          • 2014-02-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多