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服务?的主要内容,如果未能解决你的问题,请参考以下文章