@WebMethod
ActionStatus downloadFile(@WebParam(name = "file") String file);
Implementation:
public ActionStatus downloadFile(String filePath) {
MessageContext mc = webServiceContext.getMessageContext(); // see http://czetsuya-tech.blogspot.com/2017/09/how-to-access-httpservletrequest-and.html
HttpServletResponse response = (HttpServletResponse) mc.get(MessageContext.SERVLET_RESPONSE);
File file = new File(getProviderRootDir() + File.separator + filePath);
if (!file.exists()) {
// handle exception
}
try {
FileInputStream fis = new FileInputStream(file);
response.setContentType(Files.probeContentType(file.toPath()));
response.setContentLength((int) file.length());
response.addHeader("Content-disposition", "attachment;filename=\"" + file.getName() + "\"");
IOUtils.copy(fis, response.getOutputStream());
response.flushBuffer();
} catch (IOException e) {
// handle exception
}
}
*Note: IOUtils is from apache commons.
0 nhận xét:
Đăng nhận xét