下载网络图片并传入项目中

下载网络图片并传入项目中

@ResponseBody
    @RequestMapping(value = "/insertQualitycontrolInfo", produces = "application/json;charset=UTF-8")
    public String insertQualitycontrolInfo() {
      QualitycontrolInfo qualitycontrolInfo = this.getParameterBean("qualitycontrolInfo", new QualitycontrolInfo());
         QualitycontrolInfo qualitycontrolInfoa = qualitycontrolService.insertEntityInfo(qualitycontrolInfo);
         String qualitycontrolid = qualitycontrolInfoa.getQualitycontrolid();
         Map<String,String> params = new HashMap<String,String>();
         params.put("businessobjectid", qualitycontrolid);
         params.put("businesscode", "LIMS_QUALITYCONTROL");
         params.put("handletype", "1");
         params.put("otherparam", "");
         params.put("version", "");                     //附件所需要的参数
         String photourls = qualitycontrolInfo.getDesc13();
         String fileDirServerSideByWorkDir = FileController.getWorkdir();        //传入项目中的地址
         final String fileDirServerSide = fileDirServerSideByWorkDir;
         String workPath = FileManager.getRealPath(StringUtils.isNotEmpty(fileDirServerSide) ? fileDirServerSide : workdir);                //获取项目中存储的全部路径   
         if(photourls!=null){
          Map<String,String> fileMap = qualitycontrolService.downloadPicture(photourls,workPath);  //下载图片并返回相关图片信息
             UploadFileInfo uploadFile = new UploadFileInfo();
             BeanUtils.convertMap(params, uploadFile);
             uploadFile.setFiledirserverside(fileDirServerSide);
             uploadFile.setFilename(fileMap.get("filename"));
             uploadFile.setFiletype(fileMap.get("contentType"));
             uploadFile.setFilesize(fileMap.get("filesize"));
             uploadFile.setMd5code(fileMap.get("md5code"));
             uploadFile.setFilenameserverside(fileMap.get("filenameserverside"));
             uploadFile.setRecordercode(getCurrentUser().getUsercode());
             uploadFile.setRecorderdesc(getCurrentUser().getUserdesc());
             uploadFile.setRecordtime(new Date());
             uploadService.insertUploadFile(uploadFile);
         }
         return toJSON("qualitycontrolInfo", qualitycontrolInfoa);
}
 

public Map<String,String> downloadPicture(String urlList,String path) {
    
         URL url = null;
         Map<String,String> filemap = new HashMap<String,String>();
        
         try {
             url = new URL(urlList);
             String uuid = UUID.randomUUID().toString();
             String urlpri = "weixintousu"+uuid;
             DataInputStream dataInputStream = new DataInputStream(url.openStream());             //创建数据输入流
             String suffixname = urlList.substring(urlList.lastIndexOf("."));
             String newpath = path.replaceAll("\\\\","/");  //将目录转为路径
             String filepath = newpath+uuid+".jpg";
             File file = new File(filepath);
 
             FileOutputStream fileOutputStream = new FileOutputStream(file);   //创建文件输出流,都是先用File类打开本地文件,实例化输入输出流,然后调用流的读写方法读取或写入数据,最后关闭流
             ByteArrayOutputStream output = new ByteArrayOutputStream();   //创建字节输出流,字节数组输出流在内存中创建一个字节数组缓冲区,所有发送到输出流的数据保存在该字节数组缓冲区中
 
             byte[] buffer = new byte[1024];   //定义了一个byte类型的数组,数组长度为1024。也就是说你最多可以存1024个字节的东西
             int length;
 
             while ((length = dataInputStream.read(buffer)) > 0) {
                 output.write(buffer, 0, length);    //表示读了多少个字节就写多少个字节。最多字节数和buffer长度一样
             }
             fileOutputStream.write(output.toByteArray());  //文件输出流写output的字符数组
             String contentType = new MimetypesFileTypeMap().getContentType(file);   //获取file文件的contentType
             FileBean fbean = new FileBean();
             fbean.setOriginalname(urlpri);
             fbean.setFilename(filepath);
             fbean.setContenttype(contentType);
             fbean.setUuid(uuid+".jpg");
             File tfile = fbean.getFile();
             String md5code = MD5Util.getFileMD5String(tfile);     //获取文件的MD5
            
             filemap.put("filename", urlpri);
             filemap.put("md5code", md5code);
             filemap.put("contentType", contentType);
             filemap.put("filesize", output.size()+"");
             filemap.put("filenameserverside", uuid+".jpg");   //将插入附件表中所需的信息放入map中并返回
             dataInputStream.close();
             fileOutputStream.close();
         } catch (MalformedURLException e) {
             e.printStackTrace();
         } catch (IOException e) {
             e.printStackTrace();
         }
         return filemap;
     }
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值