2013-02-26 62 views
2

到目前爲止,我們一直在使用JavaScript中的Backbone和Java Servlet來在客戶端和服務器之間同步數據。我們使用Jackson將JSON轉換爲Java對象服務器端。Backbone + FileUpload + Java Servlet + Jackson - Base64 =噩夢?

我們的模型是一個配置文件對象,其中包含有關用戶的基本信息,例如名稱,電子郵件等,現在我們要將一個配置文件圖片添加到該對象。

我們已經用FileReader進行了實驗 - 在客戶端上傳了圖像,然後將其轉換爲Base64。這適用於使用JSON上傳。但我們現在已經知道FileReader並不完全支持(特別是在舊版本的IE和Safari以及一些移動瀏覽器上)。

我們已經想過做一個形式,多部分上傳,但隨後我們就必須打破骨幹,因爲我們將不再在保存發送JSON。目前還不清楚我們是否可以使用Jackson自動將數據解析爲JavaObject,或者如果我們自己來做。 File upload seems fairly straight-forward,但自動封送處理不。

肯定有人遇到過這個問題嗎?

回答

2

我對圖片上傳的想法:對於支持它的瀏覽器,繼續做Base64。這樣你就可以使用Base64和JSON。它看起來像和Chrome,火狐的所有版本,以及Safari的最新版本的Internet Explorer支持它。

然後,對於那些誰不支持的話,做兩個API調用:一個上傳的圖片(即返回一個網址),以及一個上傳(用URL)的商家數據。這樣,我們仍然可以使用骨幹/ JSON /傑克遜對商戶的數據,同時保持向後兼容性