Dubbo + RestEasy 实现文件上传与下载
生活随笔
收集整理的這篇文章主要介紹了
Dubbo + RestEasy 实现文件上传与下载
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
前些天發(fā)現(xiàn)了一個巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點擊跳轉(zhuǎn)到教程。
Dubbo+RestEasy實現(xiàn)文件上傳與下載
Dubbo+RestEasy實現(xiàn)文件上傳與下載
Maven依賴
注解
代碼實現(xiàn)
1、 上傳
2、 下載
3、 上傳、下載請求參數(shù)對象
測試
Dubbo+RestEasy實現(xiàn)文件上傳與下載
通過JBOSS WILDLFY服務(wù)器,利用jboss resteasy實現(xiàn)文件流方式的上傳與下載,方便、簡潔。
Maven依賴?
<dependency><groupId>org.jboss.resteasy</groupId><artifactId>resteasy-jaxrs</artifactId></dependency><dependency><groupId>org.jboss.resteasy</groupId><artifactId>resteasy-client</artifactId></dependency><dependency><groupId>org.jboss.resteasy</groupId><artifactId>resteasy-jackson-provider</artifactId></dependency><dependency><groupId>org.jboss.resteasy</groupId><artifactId>resteasy-jaxb-provider</artifactId></dependency><dependency><groupId>org.jboss.resteasy</groupId><artifactId>resteasy-multipart-provider</artifactId><version>3.0.9.Final</version></dependency>注解
@MultipartForm -- 將http請求轉(zhuǎn)化為類的對象 @Consumes("multipart/form-data") -- 只接收MIME TYPE為multipart/form-data的請求代碼實現(xiàn)
1、 上傳
上傳Rest接口方法
上傳接口實現(xiàn)
@Overridepublic Result<String> uploadData(UploadFileParaRequest request) {Result<String> result = new Result<>(true);try {// 文件存儲路徑String fileSavePath = "e://demo/";// 存儲文件saveFile(request.getFileData(), fileSavePath);// 返回數(shù)據(jù)result.setObj(fileSavePath );} catch (Exception e) {result.setSuccess(false);result.setErrorCode(ErrorCode.SYSTEM_EXCEPTION);result.setErrorMessage("系統(tǒng)異常");}return result;}
2、 下載
下載Rest接口方法
下載接口實現(xiàn)
@Overridepublic Response downloadData(DownloadRequest request) {ResponseBuilder response = Response.status(Status.OK);try {// 校驗請求參數(shù)if (request == null || StringUtils.isEmpty(request.getFilePath())) {throw new BusinessException("文件路徑為空", ErrorCode.NULL_DOWNLOAD_REQUEST_PARAM);}File file = new File(request.getFilePath());response = Response.ok((Object) file);} catch (Exception e) {response.status(Status.BAD_REQUEST);}return response.build();}
3、 上傳、下載請求參數(shù)對象
?及:
?import java.io.Serializable;import javax.ws.rs.FormParam;public class DownloadRequest implements Serializable {private static final long serialVersionUID = 1L;// 文件路徑@FormParam("filePath")private String filePath;public String getFilePath() {return filePath;}public void setFilePath(String filePath) {this.filePath = filePath;}}測試
使用postman測試,設(shè)置body為“form-data”,選擇待上傳文件(zip)即可;下載接口選擇“download”發(fā)送請求。
----------------------------------------------------------
補記:
實體類使用的注解為:
@FormParam("number") private String number;
?
總結(jié)
以上是生活随笔為你收集整理的Dubbo + RestEasy 实现文件上传与下载的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多个 VUE 前端工程部署设置、ngin
- 下一篇: Qt-输入事件模型