首先定义实体对象
/** * 图片数据封装 */ @Data public class PgNewImageDto { /** * 文件类型 */ private String fileType; /** * 文件数据 */ private String fileData; }
转换实现
/** * 输入流转换为实体对象 * @param inputStream * @return * @throws Exception */ private PgNewImageDto convertToImgDto(InputStream inputStream) throws Exception { PgNewImageDto imageDto=new PgNewImageDto(); //复制流 ByteArrayOutputStream outputStream1= TyIoUtil.cloneInputStream(inputStream); InputStream inputStream1= new ByteArrayInputStream(outputStream1.toByteArray()); String fileType=TyIoUtil.getFileType(inputStream1,false); imageDto.setFileType(fileType); InputStream inputStream2= new ByteArrayInputStream(outputStream1.toByteArray()); String fileBase64=TyOkHttpUtil.inputStreamToBase64(inputStream2); imageDto.setFileData(fileBase64); // //文件存储则启用下面代码 // String fileName= UUID.randomUUID().toString(); // String foldName=imagesPath.replace("\\","/")+"temp/"; // String filePath=foldName+fileName+imageDto.getFileType(); // InputStream inputStream3= new ByteArrayInputStream(outputStream1.toByteArray()); // TyIoUtil.saveFile(inputStream3,foldName,fileName,imageDto.getFileType()); inputStream1.close(); inputStream2.close();
// inputStream3.close();
return imageDto; }
调用示例
//拼接参数 String xbUserToken=checkResult.getData().toString(); Map<String, Object> listKv=new HashMap<>(); listKv.put("xbUserToken",xbUserToken); listKv.put("xbAppToken",XbAppToken); //拼接路径 InputStream inputStream=null; try { //基础路径 String tgFullUrl=tgRootUrl+URL_NEWS_IMAGE_PATH+picId; inputStream=TyOkHttpUtil.doGetFileStream(tgFullUrl,listKv); if(ObjectUtil.isEmpty(inputStream)) { objRet.setMsg("图片接口获取失败."); return objRet; } } catch (Exception ex){ log.error(ex.getMessage(),ex); objRet.setMsg("图片接口获取失败."); return objRet; } try { PgNewImageDto imageDto=convertToImgDto(inputStream); inputStream.close(); objRet.setSuccess(true); objRet.setData(imageDto); objRet.setMsg("文件下载完成"); } catch (Exception ex){ log.error(ex.getMessage(),ex); objRet.setSuccess(false); objRet.setMsg("文件下载失败"); } finally { if(inputStream!=null){ try { inputStream.close(); } catch (Exception ex){ } } }
至此,执行效果达到预期目的,具体效果图省略
标签:objRet,Java,String,imageDto,Base64,inputStream,ex,InputStream From: https://www.cnblogs.com/oumi/p/18075620