javascript - Backbone + FileUpload + Java Servlet + Jackson - Base64 = 噩梦?

标签 javascript servlets file-upload backbone.js jackson

到目前为止,我们一直在 JavaScript 中使用 Backbone 以及 Java Servlet 在客户端和服务器之间同步数据。我们使用 Jackson 将 JSON 转换为 Java 对象服务器端。

我们的模型是一个个人资料对象,其中包含有关用户的基本信息,例如姓名、电子邮件等,现在我们想要向该对象添加个人资料图片

我们尝试了 FileReader——将图像上传到客户端,然后将其转换为 Base64。这对于使用 JSON 上传非常有效。但我们现在了解到 FileReader 并未得到完全支持(特别是在旧版本的 IE 和 Safari 以及某些移动浏览器上)。

我们考虑过进行表单分段上传,但随后我们将不得不破坏 Backbone ,因为我们将不再在保存期间发送 json。还不清楚我们是否可以使用 Jackson 自动将数据解析为 JavaObject,或者我们是否必须自己完成。 File upload seems fairly straight-forward ,但自动编码(marshal)处理不会。

肯定有人以前遇到过这个问题?

最佳答案

我对图片上传的想法:支持的浏览器就继续做Base64。这样您就可以按预期使用 Base64 和 JSON。看起来所有版本的 Chrome、Firefox 以及最新版本的 Safari 和 Internet Explorer 都支持它。

然后,对于那些不支持它的人,请执行两次 api 调用:一次上传图像(返回 url),一次上传商家数据(带有 url)。这样我们仍然可以使用backbone/json/jackson作为商家数据,同时保持向后兼容性

关于javascript - Backbone + FileUpload + Java Servlet + Jackson - Base64 = 噩梦?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15091331/

相关文章:

javascript - 如何在完成多个异步调用后推迟 Backbone 中的调用?

grails - 每个请求只能调用一次 ServletFileUpload.parseRequest() 吗?

node.js - 重复的 http post 请求被延迟

spring - 简单的 Spring Boot 应用程序 - 需要 HttpServletResponse

asp.net - 通过ASP.NET下载会影响IIS性能吗?

javascript - 使用逗号在 #react-select 上创建新标签

javascript - 字符串拆分映射组合的时间复杂度

javascript - 将输入值 .val() 替换为 jQuery

java - 如何在java中的 session 中保存当前url

java - 如何测试动态网页项目?