コード例 #1
0
  public boolean handleGetMsgContent(HttpServletRequest request, HttpServletResponse response) {

    copyToSession(request, this.getMsgContentParams);
    HttpSession session = request.getSession();

    boolean getMsg = session.getAttribute("getMessageContent") != null;

    if (!getMsg) return false;

    try {
      OAuthToken token = getSessionToken(request, response);
      if (token == null) {
        return true;
      }

      String msgId = (String) session.getAttribute("messageId");
      String partNum = (String) session.getAttribute("partNumber");

      IMMNService srvc = new IMMNService(appConfig.getApiFQDN(), token);

      MessageContent msg = srvc.getMessageContent(msgId, partNum);

      String content = "";
      String type = msg.getContentType().toLowerCase();
      if (type.contains("image")) {
        byte[] binary = msg.getContent().getBytes("ISO-8859-1");
        String base64 = new String(Base64.encodeBase64(binary));

        content = "<img src=\"data:" + msg.getContentType() + ";base64," + base64 + "\"/>";
      } else if (type.contains("video")) {
        byte[] binary = msg.getContent().getBytes("ISO-8859-1");
        String base64 = new String(Base64.encodeBase64(binary));

        content = "<video controls=\"controls\" autobuffer=\"autobuffer\" autoplay=\"autoplay\">";
        content += "<source src=\"data:" + msg.getContentType() + ";base64," + base64 + "\" >";
        content += "</video>";
      } else if (type.contains("audio")) {
        byte[] binary = msg.getContent().getBytes("ISO-8859-1");
        String base64 = new String(Base64.encodeBase64(binary));

        content = "<audio controls=\"controls\" autobuffer=\"autobuffer\" autoplay=\"autoplay\">";
        content += "<source src=\"data:" + msg.getContentType() + ";base64," + base64 + "\" >";
        content += "</audio>";
      } else if (type.contains("text")) {
        content = msg.getContent();
      } else {
        content = "Unknown content type!";
      }

      request.setAttribute("msgContent", content);
      clearSession(request, this.getMsgContentParams);
    } catch (Exception e) {
      clearSession(request, this.getMsgContentParams);
      request.setAttribute("msgContentError", e.getMessage());
    } finally {
      request.setAttribute("toggleDiv", "getMsg");
    }
    return false;
  }