Java SmartGWT~DSRequest下载文件
我正在用smartGWT编写一个服务器端类,它从表中获取一条记录,并从数据库中下载一个二进制blob作为文件。目标是将二进制文件附件下载到本地计算机 有人告诉我,我可以使用Java SmartGWT~DSRequest下载文件,java,eclipse,gwt,smartgwt,smartgwt-pro,Java,Eclipse,Gwt,Smartgwt,Smartgwt Pro,我正在用smartGWT编写一个服务器端类,它从表中获取一条记录,并从数据库中下载一个二进制blob作为文件。目标是将二进制文件附件下载到本地计算机 有人告诉我,我可以使用DSRequest.getUploadedFile(附件)下载文件,但查看它时,该方法似乎没有从数据库中获取要下载的上载文件,而是获取要上载到数据库的文件 是否有一种方法可以从数据库中获取一个文件,并将其作为服务器端代码的下载返回给用户?我们知道我们可以在客户端代码中做到这一点,但我们希望能够在服务器上做到这一点 下面是如何获
DSRequest.getUploadedFile(附件)
下载文件,但查看它时,该方法似乎没有从数据库中获取要下载的上载文件,而是获取要上载到数据库的文件
是否有一种方法可以从数据库中获取一个文件,并将其作为服务器端代码的下载返回给用户?我们知道我们可以在客户端代码中做到这一点,但我们希望能够在服务器上做到这一点
下面是如何获取包含要发送给用户的文件的记录
DSRequest dsReq = new DSRequest("table", "fetch");
dsReq.setCriteria("criteria", processFlowData.getVariableMap().get("critera"));
DataSource ds = dsReq.getDataSource();
DSResponse dsResp = ds.execute(dsReq);
if (dsResp.getStatus() < 0) {
//Handle Errors
} else {
if (!dsResp.getRecord().isEmpty()) {
//Download File Here
}
}
DSRequest dsReq=新的DSRequest(“表”、“获取”);
dsReq.setCriteria(“criteria”,processFlowData.getVariableMap().get(“critera”);
DataSource ds=dsReq.getDataSource();
DSResponse dsResp=ds.execute(dsReq);
if(dsResp.getStatus()<0){
//处理错误
}否则{
如果(!dsResp.getRecord().isEmpty()){
//在这里下载文件
}
}
我正在使用Eclipse开普勒、SmartGWT、Java EE。您可以这样做:
public static void downloadFile(DSRequest dsRequest, RPCManager rpcManager, HttpServletResponse servletResponse) throws Exception {
rpcManager.doCustomResponse();
ServletOutputStream outputStream = servletResponse.getOutputStream();
servletResponse.addHeader("Content-disposition", "attachment; filename=test.pdf");
servletResponse.setContentType("application/x-www-form-urlencoded");
OutputStream responseOutputStream = servletResponse.getOutputStream();
// write file to responseOutputStream
responseOutputStream.flush();
responseOutputStream.close();
}