工作流生成图片乱码(�PNG)
2019-01-28 本文已影响0人
挑战者666888
异常信息如下:
�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��д�����Ғ_SSTݹ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��ۨ���cyj��ݪ��ٰ@����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格式形式,给你响应回去了。