微信ウィジェットマルチメディアファイルのアップロードとダウンロード(springbootフレームワーク)


私は自分で小さいプログラムの出会う穴を開発して、みんなに分かち合って、大量の時間を浪費することを避けます
/**
     *         
     * @param file           
     */
public FileUploadOrDownload uploadTempMedia(String file) {
        //       
        HttpHeaders headers = new HttpHeaders(); 
        MediaType type = MediaType.parseMediaType("multipart/form-data;charset=UTF-8");//multipart/form-data  text/plain
        headers.setContentType(type);
        FileSystemResource resource = new FileSystemResource(new File(file));  
        //         
        MultiValueMap map = new LinkedMultiValueMap();  
        map.add("resource", resource);
        HttpEntity> httpEntity = new HttpEntity>(map, headers);  
        //   accesstoken(      accesstoken    ,           accesstoken)
        AccessToken accesstoken = iAccessTokenDao.find("smallProgram");
        String url = "https://api.weixin.qq.com/cgi-bin/media/upload?access_token="+accesstoken.getAccess_token()+"&type=image";
        RestTemplate restTemplate = new RestTemplate();
        //       ,  url  
        ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
        //      (  json)
        if (responseEntity!=null&&responseEntity.getStatusCode()==HttpStatus.OK) {
            String sessionData = responseEntity.getBody();
            FileUploadOrDownload result = JSON.parseObject(sessionData, FileUploadOrDownload.class);
            return result;
        } else {
            return null;
        }
    }

/**
     *         
     * @param media_id    id
     */
    @Override
    public String getTempMedia(String media_id) {
         //   accesstoken(         accesstoken)
        AccessToken accesstoken = iAccessTokenDao.find("smallProgram");
        String url = "https://api.weixin.qq.com/cgi-bin/media/get?access_token="+accesstoken.getAccess_token()+"&media_id="+media_id;
        RestTemplate restTemplate = new RestTemplate();
        //       ,  url  
        ResponseEntity<byte[]> responseEntity = restTemplate.exchange(url, HttpMethod.GET, null, byte[].class);
        //      (            ,        json)
        if (responseEntity!=null&&responseEntity.getStatusCode()==HttpStatus.OK) {
            byte[] sessionData = responseEntity.getBody();
            try {
                for (int i = 0; iif (sessionData[i]<0) {//       
                        sessionData[i] += 256;
                    }
                }
                //   jpg  
                String savePath = "C:/Users/Administrator/Desktop";//       
                if (!savePath.endsWith("/")) {
                    savePath += "/";
                }
                //            
                String fileExt = responseEntity.getHeaders().getContentType().getSubtype();
                //  mediaId     
                String filePath = savePath + media_id + "." + fileExt;
                OutputStream out = new FileOutputStream(filePath);
                out.write(sessionData);
                out.flush();
                out.close();
                return filePath;
            } catch (Exception e) {
                throw new WxPreWebBaseException("", "    ", "             ", e);
            }
        } else {
            return null;
        }
    }