【问题标题】:What's better solution to sync images from database to web service and mobile application将图像从数据库同步到 Web 服务和移动应用程序的更好解决方案是什么
【发布时间】:2013-02-12 13:10:22
【问题描述】:

根据路径同步图像的更好解决方案是:

  • 数据库 - Web 服务 - 移动应用程序

在我的数据库中,我有一个 blob 字段 作为图像。所以,我需要为网络服务和移动应用程序传输图像。

我找到了解决方案(尝试),但大图像总是返回内存不足。解决方法如下:

  • 在我的 Web 服务中,我使用 json API 来存储要集成的 blob 图像。看,我将图像创建为 base64,这对于小图像没有问题,但大图像(2000 个项目)会触发内存不足。所以,我的代码如下:

    public void getImages(String date) throws Exception {
    
    JSONObject jsonObject = new JSONObject();
    JSONArray jsonArray = new JSONArray();
    
    if (date != null)  {
    
        try {
            Class.forName(DRIVER);
            connection = DriverManager.getConnection(URL, USER, PASS);
    
            Statement s = connection.createStatement();
            ResultSet r = s.executeQuery("select * from images");
    
            while (r.next()) {
                JSONObject o = new JSONObject();
    
                byte[] imageBytes = r.getBytes("image");
                String imageBase64 = DatatypeConverter.printBase64Binary(imageBytes);
                o.put("image", imageBase64);
    
                jsonArray.put(o);
            }
    
            jsonObject.put("images", jsonArray);
    
        } catch (SQLException e) {
            System.out.println(e);
        }
    }
    }
    
  • 在我的移动应用程序中,读取 json 并将 base64 解码为显示图像后的每个图像。所以,我不需要将图像存储在移动磁盘或网络服务磁盘中。

移动应用程序将离线工作。有什么想法可以解决我的问题吗?

【问题讨论】:

  • 不要将图像直接编码为 JSON。而是返回一个单独提供图像的服务器 URL。

标签: java json base64 blob sync


【解决方案1】:

不要将图像直接编码为 JSON。而是返回一个单独提供图像的服务器 URL。

@Alan Krueger 的提示。这是更好的解决方案,用 json 编码图像是个坏主意。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    相关资源
    最近更新 更多