JSP:
<tr>
<td width="15%" class="table_span"><sr:message bundle="database" key="bidProject.affix"/></td>
<td colspan="3" width="35%" class="relative">
<c:forEach items="${srModel.fileIds}" var="item" varStatus="s">
<div>
<a id="deleteId${s.index}" href="DownloadServlet?id=<c:out value="${item}"/>"><c:out value="${srModel.fileNames[s.index]}"/></a>
<button type="button" id="deleteButton${s.index}" indexnumber="${s.index}" class="btn btn-small btn-danger deleteBtn" deleteFileId="${item}" >
<sr:message bundle="common" key="page.button.delete"/>
</button>
</div>
</c:forEach>
<div>
<input id="tenderFileUrls" name="v(affix@submitProjectSpModel#String)" value="${srModel.bidProject.affix}" type="hidden">
<a id="tenderFileBtn" href="#upload"> 选择要上传的文件 </a>
<!-- 文件上传队列 -->
<ul id="tenderFileQueue">
</ul>
</div>
</tr>
JS:
var flashupload = require('flashupload');
flashupload('#tenderFileBtn', '#tenderFileQueue',{
urlsInputName:"v(affix@submitProjectSpModel#String)",
restoreHook:"#tenderFileUploaderRestore",
authConfig: {
max:[1, "最多上传{max}个文件!"],
maxSize:[1000, "文件大小为{size},文件太大!"],
allowExts:[
{"desc":"JPG,JPEG,PNG,GIF,BMP", "ext":"*.jpg;*.jpeg;*.png;*.gif;*.bmp"},
"不支持{ext}格式的文件上传!" ]
}
});
附件删除JS:
$(".deleteBtn").click(function(e) {
var fileIds = $("input[name='v(affix@submitProjectSpModel#String)']").val();
var deleteFileId = $(this).attr("deleteFileId");
var index = $(this).attr("indexnumber");
$("input[name='v(affix@submitProjectSpModel#String)']").val(deleteFile(fileIds, deleteFileId));
$("#deleteId" + index).remove();
$("#deleteButton" + index).remove();
});
function deleteFile(fileIds, deleteFileId) {
var deleteIndex = fileIds.indexOf(deleteFileId);
var result;
if(deleteFileId != -1) {
if(deleteIndex == 0) {
if(deleteIndex + deleteFileId.length + 1 > fileIds.length) {
result = "";
} else {
result = fileIds.replace(deleteFileId + ",", "");
}
} else {
result = fileIds.replace("," + deleteFileId, "");
}
}
return result;
}
Service:
//得到各个附件的名称
if(!StringUtil.isEmpty(srModel.getBidProject().getAffix())) {
logger.info("获取附件名称:" + spModel.getId());
try {
String[] fileIds = StringUtils.split(srModel.getBidProject().getAffix(), ",");
String[] fileNames = new String[fileIds.length];
for(int i = 0; i < fileIds.length; i++) {
fileNames[i] = FileUtil.getNameById(fileIds[i]);
}
srModel.setFileNames(fileNames);
srModel.setFileIds(fileIds);
} catch (Exception e) {
// TODO Auto-generated catch block
logger.info("获取附件名称失败:" + e.getMessage());
e.printStackTrace();
}
}