Extjs文件上传使用json服务?

Posted

技术标签:

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

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

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

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

【问题讨论】:

【参考方案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

以上是关于Extjs文件上传使用json服务?的主要内容,如果未能解决你的问题,请参考以下文章

Extjs - 使用文件字段上传文件

ExtJS 3 - 文件上传

使用 C# 上传 Extjs 文件

Extjs文件上传问题总结

ExtJs上传文件

extjs列表中文件上传与下载(带有重命名操作)