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

这是一个关于如何使用Java CXF库创建一个WebService接口来处理大文件上传和下载的示例。`FileWS`接口定义了`upload`方法,接收一个包含文件数据的`CxfFileWrapper`对象,将文件保存到指定目录,并返回上传结果。`FileWSImpl`实现了该接口,提供了具体的操作实现,包括文件流的读写操作,确保文件能正确保存。`download`方法则返回一个包含文件数据的`CxfFileWrapper`对象,用于文件下载。
摘要由CSDN通过智能技术生成

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;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值