1、 获取文件上传地址 ,2、 上传文件流 ,3、 查询文件上传状态
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package com.ruoyi.common.utils.file;
|
package com.ruoyi.common.utils.file;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONObject;
|
||||||
import com.ruoyi.common.config.EsignDemoConfig;
|
import com.ruoyi.common.config.EsignDemoConfig;
|
||||||
import com.ruoyi.common.constant.EsignHeaderConstant;
|
import com.ruoyi.common.constant.EsignHeaderConstant;
|
||||||
import com.ruoyi.common.core.domain.entity.EsignHttpResponse;
|
import com.ruoyi.common.core.domain.entity.EsignHttpResponse;
|
||||||
@@ -16,8 +17,6 @@ public class SaaSAPIFileUtils {
|
|||||||
private static String eSignAppSecret=EsignDemoConfig.EsignAppSecret;
|
private static String eSignAppSecret=EsignDemoConfig.EsignAppSecret;
|
||||||
/**
|
/**
|
||||||
* 获取文件上传地址
|
* 获取文件上传地址
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
public static EsignHttpResponse getUploadUrl(String filePath) throws EsignDemoException {
|
public static EsignHttpResponse getUploadUrl(String filePath) throws EsignDemoException {
|
||||||
//自定义的文件封装类,传入文件地址可以获取文件的名称大小,文件流等数据
|
//自定义的文件封装类,传入文件地址可以获取文件的名称大小,文件流等数据
|
||||||
@@ -38,6 +37,47 @@ public class SaaSAPIFileUtils {
|
|||||||
//发起接口请求
|
//发起接口请求
|
||||||
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, true);
|
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, true);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 上传文件流
|
||||||
|
*/
|
||||||
|
public static EsignHttpResponse uploadFile(String uploadUrl,String filePath) throws EsignDemoException {
|
||||||
|
//根据文件地址获取文件contentMd5
|
||||||
|
EsignFileBean esignFileBean = new EsignFileBean(filePath);
|
||||||
|
//请求方法
|
||||||
|
EsignRequestType requestType= EsignRequestType.PUT;
|
||||||
|
return EsignHttpHelper.doUploadHttp(uploadUrl,requestType,esignFileBean.getFileBytes(),esignFileBean.getFileContentMD5(), EsignHeaderConstant.CONTENTTYPE_STREAM.VALUE(),true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取文件上传状态
|
||||||
|
*/
|
||||||
|
public static EsignHttpResponse getFileStatus(String fileId) throws EsignDemoException {
|
||||||
|
String apiaddr="/v3/files/"+fileId;
|
||||||
|
|
||||||
|
//请求参数body体,json格式。get或者delete请求时jsonString传空json:"{}"或者null
|
||||||
|
String jsonParm=null;
|
||||||
|
//请求方法
|
||||||
|
EsignRequestType requestType= EsignRequestType.GET;
|
||||||
|
//生成签名鉴权方式的的header
|
||||||
|
Map<String, String> header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId,eSignAppSecret,jsonParm,requestType.name(),apiaddr,true);
|
||||||
|
//发起接口请求
|
||||||
|
return EsignHttpHelper.doCommHttp(eSignHost, apiaddr,requestType , jsonParm, header,true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* public static void main(String[] args) throws EsignDemoException {
|
||||||
|
String filePath = "D:\\home\\ruoyi\\uploadPath\\upload\\2023\\10\\07\\6babb8e261454fffbacf6d9fd1589b9b.docx";
|
||||||
|
EsignHttpResponse uploadUrl = getUploadUrl(filePath);
|
||||||
|
String body = uploadUrl.getBody();
|
||||||
|
JSONObject jsonObject = new JSONObject(body);
|
||||||
|
JSONObject dataObj = jsonObject.getJSONObject("data");
|
||||||
|
String fileUploadUrl = dataObj.get("fileUploadUrl").toString();
|
||||||
|
System.out.println("这是fileUploadUrl:"+fileUploadUrl);
|
||||||
|
String fileId = dataObj.get("fileId").toString();
|
||||||
|
System.out.println("这是fileId:"+fileId);
|
||||||
|
EsignHttpResponse esignHttpResponse = uploadFile(fileUploadUrl, filePath);
|
||||||
|
System.out.println("这是上传文件流的结果:"+esignHttpResponse.getBody());
|
||||||
|
EsignHttpResponse fileStatus = getFileStatus(fileId);
|
||||||
|
System.out.println("这是获取文件上传状态的结果:"+fileStatus.getBody());
|
||||||
|
getFileStatus("95d0c307d91e4985bdb8874f6f84daa5");
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user