異常信息如下:
?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?????2??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();
//根據(jù)流程定義獲取輸入流
inputStream = repositoryService.getResourceAsStream(singleResult.getDeploymentId(), singleResult.getDiagramResourceName());
outputStream = response.getOutputStream();
//將輸入流中的數(shù)據(jù)讀取出來(lái)碍扔,寫(xiě)入到輸出流中
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);
}
}
}
}
···
解決辦法:
設(shè)置響應(yīng)頭:
···
response.setContentType("image/png;charset=utf-8");
···
原因分析:
如果你不設(shè)置response的contentType,發(fā)現(xiàn)reponse的響應(yīng)頭中 Content-Type 為 application/json ,響應(yīng)按照json格式形式难裆,給你響應(yīng)回去了。