工作流生成图片乱码(�PNG)

异常信息如下:

�PNG
�
���
IHDR�������F����������
�IDATx��]L����I4��s�e/Lj���E/j����ً��F��6H�Y����h�F"���h�   ј(G+5� �** ����T���G�ȗX�!�������2dXXم�aX�O�dwfva�����}��w��д�����Ғ_SS󩴴Tݹs��쒒�UYY�_m7\a��+��+�B��Ш��R===jpp�ϐ߾}�***�t���+Wp�Wp�W9X��&4�����%�W���
��
��r���*NZ�X���\a��+��+�B����G���
��W���
��
��������.�R{^=+9hX��:Nv����
��
�0\!
h���v�������w����m����\��\��\a�B����~��q�a��Y�'<��Wp�Wp�W�����Սw��
��� Op��\��\���+D�m��;�~�C�q���p�Wp�Wp��
Q@����\��\a��+�Bhj�!W������ Op��\��\���+D�mqs�i��!�8�   ���+��+��p�(�-~�Ѡ��>0�k+�N�q���p�Wp�Wp��
Q@���??���Y��Np��\��\�����)..��ׯ�t�\y��v�����Y��Ί�����;���������ͭ����KOO�JLL��Sn����͛�����r�ȑKڿ�������~�����:�� Op��\��\������k��� ު��F�倬��P?����|�����ի?dee
edd�3gΨ�����ѡ����H�{zzT]]����ڶm���۷�JIII����ݗ��O���%۸����Wp�Wp�W0�W�K����~�L�<�_kG�e�u��t�С��v�2����a���=z����3��x�u����,�u����L=)����0-����
'8�
��
��
6�j�^g]����������O�V���F������t�JM�������&*�/��
U�����²��TUTT�T����b�ao$�FO�����i���p�Wp��
��*0EGG����=k�+u�ԙ�?~�&�zV>�y�O��?�!�R<����;--M555�P�իW������|-�t ��/��    �����
��
�0��h���Y��=��Jz�������R�Oy'��Y�g�����祤���\.��P@O54L����\��\��\a
�(��a-vetD($�S||����S�A��,�ڡ�y��':!!�W���Fz��   ���+��p��jz��`p8�ų���鉎�v��������z�|u��u����P@c����
��
�0\}i�u�
������x��x肂���l���Ğ��l���IC9�����
�0\q<�*��y���Nu�s c�}.,�>��g��Y���C��?���^h����+��+W�O�
���ћ��l���P�ր.(�;ʅ�ә�.X%%%u��\���wG������W��0\��\������G�y��  ��7m�d�c�����s�;wN٩�'N<
��|�d~�r���A����\��\a��x�U���3���MR��m����5������'��S��ߗA�E���[|s����Ap��\���+�'\��+��gn��F�;�Z煞��IOO���겵�����+�g���m1Y�4�Ap��\���+�'\��+���\oW�*�,��O����-�+���>�s����[[L����Ap��\���+�'\��+�As9\�o��MM���̄���g�   �g��0\��\��\E�g�6���ްa�g�{��^o�,�-���)N����޽��5���c����F����O����
��
��
�f�+����=�iii�v������q������N���wG�Z�Jn��
��՚5kd�@c�\'��y���\�p�x.��,X��������&8�
��
��
���V���CǏ�޿���ݳpܺu��,��������I�������c��n���Hk��˗F�[��޽�


��799y�u����+��+��+��+;����p�;v���@�8p��,��z��Ӄ���B�^�z����xF�K��coo�jkk3Zಜ���JKK��


��\��\��\��\��W�5��?���}�~�u��O6މp ..���D�����@���m]>z��jmm5�ˣ�?u�Z�l�Z�bŬ
�n��Wp�Wp�Wp5�5�w"LNN��ԝE;v�����ή�����UEE����Ң����+W��K�.�%K���'O����u�֩�����bs�������hy��\��\��\���=�fA[\\���T>3K�s�dߺ�j�ƍ1;w������W�*�].���:|�!��/_�]�p�B�
kp�={�X�x�bc�\}*۞?�>fY����p�Wp�Wp�Wpe�t��l�����a��C�����d)���b���PTT���Y�[K�s��=����0�챶�_�x��̙3�^����l���p�Wp�Wp�Wp�
%&&�`�����
Km���g�}~����M�]勒���MMMa�����B�;�t��ۨ���c޼yj��ݪ��ٰ@����w�u�zA���&8�
��
��
����a���Cf�{�ƍ�֦eee�S�EOiG�nw���y/s�R��������"i�S�c���~��c�k���m�Lgg��\__o�_���\��x��_r�D__�_]��\��\��\��L����0TE���            Ö�}qZ;�����������h�y��966vOT��I�!'�d�1�v��"��K��S�DGG��rY,�#�"�R��p�Wp�Wp�Wpe�F�Lx�ZD�p���E[��3lØ�Y��L{gu����v�]�v�i\X�{��qi5ti'FE������H���
��
�"�֒"�zs���B��#�:U^'��>���s��'�2_���W��Qw}}�7������y����G�"m�3�Ap��\���+�����>o��m������jkk��~��uHO�I�o��&)���<����!�y�SH��BZ������g���k����2�ν^owgg�%%%���̼����"���:G�l�����Wp�W���
�fV#��������_O���`���_�\�����񁑝��ّ"�;/R�0Hp��p��
��\���$�Ʊ��[u���d�,���!�������0\a��+��e=ҿ��'c�uQ�Ч��Q:~�������������������
��
S@#
hLp��\���+W�������+��+W���"8���p��
��
!����+W���
��"80��0\��\����F���������
��
S@#
hLp��\���+W�������+��+W���"8���p��
��
�0������9���1�W���
��
��r�*++�zzz8i��������h�+Wp�Wp�W9Xeee�*//��͛7^NޙkqKh����i��+Wp�Wp�W9\���t��V�6��G�v����i��Wp�Wp�W�k�
!��B!��B!��B!��B!��B!��B!��B!��B!��B!��B!��B!��B!����?��.����IEND�B`�

生成图片代码如下:

···

 @ApiOperation("生成图片")
 @RequestMapping(value = "/queryWorkflowImage", method = RequestMethod.GET)

public void queryWorkflowImage(String flowId,  HttpServletResponse response) {

    if (StringUtils.isBlank(flowId)) {
        return;
    }

    RayActivitiFlow rayActivitiFlow = rayActivitiFlowService.selectById(flowId);
    if(rayActivitiFlow == null) {
        return;
    }
    InputStream inputStream = null;
    OutputStream outputStream = null;
    try {
        if(!rayActivitiFlow.getFlowStatus().equals("1")) {
            return;
        }
        ProcessDefinition singleResult = repositoryService.createProcessDefinitionQuery().deploymentId(rayActivitiFlow.getProcDefId()).singleResult();
        //根据流程定义获取输入流
        inputStream = repositoryService.getResourceAsStream(singleResult.getDeploymentId(), singleResult.getDiagramResourceName());
        outputStream = response.getOutputStream();
        //将输入流中的数据读取出来,写入到输出流中
        for (int i = -1; (i = inputStream.read()) != -1;) {
            outputStream.write(i);
        }

    } catch (Exception e) {
        log.error(
                "controller:RayActivitiProjectWorkflowRelationController ->method:queryWorkflowImage->param:flowId:{}->Exception:{}",
                flowId, e);
    } finally {
        if (inputStream != null) {
            try {
                inputStream.close();
            } catch (IOException e) {
                log.error("error message", e);
            }
        }
        if (outputStream != null) {
            try {
                outputStream.close();
            } catch (IOException e) {
                log.error("error message", e);
            }
        }

    }
}

···

解决办法:

设置响应头:

···

        response.setContentType("image/png;charset=utf-8");

···

原因分析:

如果你不设置response的contentType,发现reponse的响应头中 Content-Type 为 application/json ,响应按照json格式形式,给你响应回去了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,974评论 6 13
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,101评论 1 32
  • 6.1 公钥密钥加密原理 6.1.1 基础知识 密钥:一般就是一个字符串或数字,在加密或者解密时传递给加密/解密算...
    AndroidMaster阅读 4,011评论 1 8
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,104评论 4 62
  • 周六早上我们收拾好行李就出发新兴县。每次出门都要10点左右,总是一大堆东西。由于出发时间不早,路上遇到塞车,平时很...
    顺德霖霖妈阅读 95评论 0 0