使用jQuery的FileUpload插件实现文件上传,下载和删除的部分代码:
// 记录文件上传序号
var fileNum = 0;
function shangchuan(flag){
var fileUrl = "";
var fileType = "";
// 可用于多个上传框
if(flag=="a"){
fileUrl = $("#aaa").val();
fileType = "aaa";
}else if(flag=="b"){
fileUrl = $("#bbb ").val();
fileType = "bbb";
}
if (file_url=="") {
alert("上传不能为空");
return false;
}
var fileNames = fileUrl.split("\\");
var length = fileUrl.split("\\").length;
var fileName = fileNames[length-1];
if(flag=="a"){
$.ajaxFileUpload({
// 调用后台方法,将文件保存到服务器,并将信息存入数据库
url : '',
contentType : "application/x-www-form-urlencoded; charset=utf-8",
type : 'POST',
fileElementId : fileType,// 上传控件的id
dataType : 'json',
data : { },
success:function(data){
addFile("span"+fileType+fileNum,"d"+fileType+fileNum,fileName,data.id,"xxx","0");
a++;
error:function(){
}
});
}
}
/**
* 该方法用于根据传入信息,添加附件下载和删除的链接
* @param fileLabelId 文件链接对应span标签的ID
* @param deleteLabelId 删除链接对应的ID
* @param fileName 文件名称
* @param fileId 附件在FJB中的recordId
* @param fileDivId 文件a标签所在的DIV的ID
* @param deleteFlag 是否提供删除功能,0代表可删除,1代表不可删除
*/
function addFile(fileLabelId,deleteLabelId,fileName,fileId,fileDivId,deleteFlag){
var fjname = '<span id="'+fileLabelId+'"><a title="'+fileName+'" ';
// href为后台提供文件下载的地址
fjname += 'href="url'?name='+value+'">'+fileName+'</a>';
fjname += '<img id="'+deleteLabelId+'" style="margin:0px 20px 0px 5px" src="deleteI.png"/>';
fjname += '</span>';
$("#"+fileDivId).append(fjname);
if(deleteFlag == "0"){
$("#"+deleteLabelId).bind("click",function(){
// 防止重复提交
$("#"+deleteLabelId).attr("disabled","disabled");
$.ajax({
type : "post",
// 删除服务器上的附件和数据库中的信息
url : "",
data : { fileId:fileId },
success : function(data) {
if("OK" == data){
$("#"+fileLabelId).remove();
alert("删除成功");
}
}
});
}
}
如果需要控制上传附件的数量,可以使用以下方法获取附件数量,再加以判断:
$("#div").children().length; 或 $("#div".children("span").length;