【问题标题】:Extjs File upload using json service?Extjs文件上传使用json服务?
【发布时间】:2012-10-29 15:56:39
【问题描述】:

我正在使用 json 服务(.net RIA 服务)将数据从 Extjs 推送到服务器。目前我需要将文档上传到服务器。我看到了一些使用表单提交到 php 文件的示例。

这可以通过json服务实现吗?或者是否有必要创建一些我可以接受表单提交的服务器逻辑?

是否可以从客户端读取一些二进制数据并作为json数据推送到服务器?

【问题讨论】:

    标签: json file-upload extjs ria extjs4.1


    【解决方案1】:

    在 Extjs 中,文件上传不是使用普通的“Ajax”技术执行的,也就是说,它们不是使用 XMLHttpRequests 执行的。而是临时创建一个包含所有字段的隐藏元素,并提交其目标集以引用动态生成的隐藏元素,该元素被插入到文档中,但在收集返回数据后被删除。

    请注意,文件上传数据包是使用内容类型 multipart/form 和一些服务器技术发送的

    检查:http://docs.sencha.com/ext-js/4-1/#!/api/Ext.form.Basic-method-hasUpload

    【讨论】:

      【解决方案2】:

      是的,这是可能的。您应该使用 FileReader 来获取二进制 base64 编码内容 (FileReader.readAsDataURL(Blob|File)),您可以使用 JSON 进行传输。

      更多见解在这里:http://www.html5rocks.com/en/tutorials/file/dndfiles/

      【讨论】:

      • 据我所知,ExtJS不支持html5客户端文件的东西。
      • 您可以自己集成它们,ExtJS 只是一个 javascript 框架,仅此而已。在我的项目中,我将 ExtJS4.1 与 Websockets、WebRTC 和一些次要的 html5 功能(如 FileReader 或 Blob)一起使用,没有任何麻烦或冲突。
      • 题外话,Slava 你有关于使用 extjs 和 websockets 的文章吗?
      • 当然:gist.github.com/4040476 这是 2 个基本的 mixin,我将一个用于 Controller,另一个用于 Store。我不打算发布它们,所以它们对于内部使用来说有点粗糙。如果您需要 javascipt 版本,请使用 coffeescript 编译它们:coffeescript.org
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-30
      • 1970-01-01
      相关资源
      最近更新 更多