效果如图:
在上一篇中,在一个文件上传到数据库,这边编码格式有点问题,名字是乱码,但是内容是没有问题的,下篇再去解决这个乱码问题,
jsp页面:
var qualificationAttachmentUploadFileGrid = Ext.create('Ext.grid.Panel',{
title : '资质材料',
store : qualificationAttachmentUploadFileStore,
forceFit : true,
autoScroll : true,
height : 100,
width: 350,
hideHeaders : true,
columns : [ {
text : "下载",
align : 'center',
flex : 1,
dataIndex : 'attachmentname',//这边gird对应的是传过来的文件名
renderer : function(value, metaData, record) {
var id = record.get("id");
return "<a href='findOneByQualificationAttachmentUploadFileId.action?QattachmentuploadfileId="
+ id + "'>" + value + "</a>";
}
} ]
});
var projectDetailsField = Ext.create("Ext.form.FieldSet", {
height : '100%',
width : 700,
border:false,
layout : "column",
items : [{
xtype:'panel',
columnWidth :0.5,
margin : '10 20 10 0',
labelAlign:"right",
allowBlank: false,
items:[attachmentUploadFileGrid]
},{
xtype:'panel',
columnWidth :0.5,
margin : '10 20 10 0',
labelAlign:"right",
allowBlank: false,
items:[qualificationAttachmentUploadFileGrid]
}]
});
在原来的表单里面,增加了一个gird来显示名字
action层:
public String findQualificationAttachmentNameByFaultId(){//这个方法是前台,点击相应项目详情,显示所有上传的资质附件名称
String sid = suppliermnt.getSupplierId();
List<Qattachmentuploadfile> list =service.findQualificationAttachmentNameByFaultId(sid);//这边这个方法是根据关联关系的id,查询到对应信息
List<Qattachmentuploadfile> li= new ArrayList<Qattachmentuploadfile>();
Qattachmentuploadfile cf = null;
for (int i = 0; i < list.size(); i++) {
cf = new Qattachmentuploadfile();
cf.setId(list.get(i).getId());
cf.setProjectid(list.get(i).getProjectid());
cf.setAttachmentname(list.get(i).getAttachmentname());
li.add(cf);
}
this.setJsonStr(listToGridJoson(null, li));
return SUCCESS;
}
下载方法:
public String findOneByQualificationAttachmentUploadFileId(){
//这边是前台根据点击的文件,传送过来的文件id,在数据库中查询相应的信息
List<Qattachmentuploadfile> list =service.findOneByQualificationAttachmentUploadFileId(QattachmentuploadfileId);
Qattachmentuploadfile cf=list.get(0);
if(cf.getAttachment()==null){
return null;
}else{
if(null==cf.getAttachment()){
return null;
}
}
HttpServletResponse response = null;
ServletOutputStream out = null;
try {
response = ServletActionContext.getResponse();
response.setHeader("Content-disposition", "attachment;filename=" + new String(cf.getAttachmentname().getBytes(), "ISO8859-1"));
out = response.getOutputStream();
if(null!=cf.getAttachment()){
out.write(cf.getAttachment());
}
out.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (response != null) {
try {
} catch (Exception e) {
e.printStackTrace();
}
}
}
return null;
}
OK,再点击文件名,跳出下载框下载,下载也完成了!