list數據通過流直接保存到oss結果記錄

   /**
     * 獲取文件輸入流
     * @param list
     * @param sheetName
     * @param <T>
     * @return
     */
 
 private <T> InputStream getFileInputStream( List<T> list, String sheetName) {
        if (list == null || list.isEmpty()) {
            return null;
        }
        Class<?> clazz = list.get(0).getClass();
		//避免亂碼問題
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        ExcelUtil excelUtil = new ExcelUtil<>(clazz);
        excelUtil.exportExcel(list, sheetName, out);
        byte[] bytes = out.toByteArray();
        ByteArrayInputStream in = new ByteArrayInputStream(bytes);
        return in;
    }
	
	
	
	 public List<String> UploadFile() {
        String host =192.168.120.1
        //封裝後的oass文件上傳地址
		//通過http請求了,底層還是ossClient
        String url = host + "/v2.0/upload/file";
        HttpPost post = new HttpPost(url);
        MultipartEntityBuilder EntityBuilder = MultipartEntityBuilder.create();
        //設置字符編碼,防止亂碼
        ContentType contentType = ContentType.create("text/plain", Charset.forName("UTF-8"));
        try {
			List<String> list=new ArrayList<>;
			String sheetName ="測試excel";
			InputStream in = this.getFileInputStream(list, sheetName);
			//爲了兼容性選擇xls
			EntityBuilder.addBinaryBody("file", in, ContentType.MULTIPART_FORM_DATA, sheetName + ".xls");
			
			/** 這裏上傳到oss不能指定文件名,如果需要指定可以使用
             * ObjectMetadata meta = new ObjectMetadata();
             * String filename = file.getOriginalName();
             * meta.setContentDisposition("attachment;filename=\""+filename+"\"");
             */
			 
            post.setEntity(EntityBuilder.build());
            CloseableHttpClient httpClient = HttpClients.createDefault();
            HttpResponse response = httpClient.execute(post);
            HttpEntity entity = response.getEntity();
            String res = EntityUtils.toString(entity, "UTF-8");
            JSONObject jsonObject = JSONObject.fromObject(res);
            JSONArray data = jsonObject.getJSONArray("data");
            List<String> list = new ArrayList<>();
            for (int i = 0; i < data.size(); i++) {
                JSONObject jsonObject1 = data.getJSONObject(i);
                String filename = jsonObject1.getString("filename");
                list.add(filename);
            }
            return list;
        } catch (Exception e) {
            logger.error("上傳excel到oss異常", e);
            return null;
        }

    }
	


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章