java webservice 大文件_CXF:通过WebService上传文件,包括大文件的处理

importjavax.jws.WebMethod;importjavax.jws.WebParam;importjavax.jws.WebService;importnet.bwda.domain.upload.CxfFileWrapper;

@WebService(name= "FileWS", serviceName = "FileWS")public interfaceFileWS {/*** 文件上传

*@paramfile 文件上传包装类

*@return上传成功返回true,上传失败返回false。*/@WebMethodboolean upload(@WebParam(name = "file") CxfFileWrapper file);/*** 文件下载

*@return文件*/@WebMethod

CxfFileWrapper download();

}importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileOutputStream;importjava.io.InputStream;importjava.io.OutputStream;importjavax.activation.DataHandler;importjavax.activation.DataSource;importjavax.activation.FileDataSource;importorg.springframework.stereotype.Component;importorg.springframework.stereotype.Service;importnet.bwda.domain.upload.CxfFileWrapper;importnet.bwda.service.upload.FileWS;

@Service

@Component("fileWS")public class FileWSImpl implementsFileWS {public booleanupload(CxfFileWrapper file){boolean result = true;

OutputStream os= null;

InputStream is= null;

BufferedOutputStream bos= null;try{

is=file.getFile().getInputStream();

File dest= new File("d:\\upload\\" +file.getFileName());

os= newFileOutputStream(dest);

bos= newBufferedOutputStream(os);byte[] buffer = new byte[1024*1024];int len = 0;while ((len = is.read(buffer)) != -1) {

bos.write(buffer,0, len);

}

bos.flush();

}catch(Exception e) {

e.printStackTrace();

result= false;

}finally{if(bos != null){try{

bos.close();

}catch(Exception e){

}

}if(os != null){try{

os.close();

}catch(Exception e){

}

}if(is != null){try{

is.close();

}catch(Exception e){

}

}

}returnresult;

}publicCxfFileWrapper download() {//下载文件的路径 String filePath = "D:\\test.xlsx";

CxfFileWrapper fileWrapper= newCxfFileWrapper();

fileWrapper.setFileName("test.xlsx");

fileWrapper.setFileExtension("xlsx");

DataSource source= new FileDataSource(newFile(filePath));

fileWrapper.setFile(newDataHandler(source));returnfileWrapper;

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值