博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

jquery.MultiFile.js 版多文件上传

Posted on 2011-08-31 19:55  itcfj  阅读(1552)  评论(0编辑  收藏  举报

jquery.MultiFile.js 版多文件上传

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ComInformationManagerEdit.aspx.cs"
Inherits
="Wbxm.ComInformation_ComInformationManagerEdit" %>

<%@ Register Assembly="SNTC.WebControls" Namespace="SNTC.WebControls" TagPrefix="sntc" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>

<script type="text/javascript" src="../Js/Func.js"></script>

<script type="text/javascript" src="../Js/Common.js"></script>

<script type="text/javascript" src="../Js/MessageBox.js"></script>

<script type="text/javascript" src="../js/jquery-1.4.2.min.js"></script>
<script src="../js/jquery.MultiFile.js" type="text/javascript"></script>
<script src="../DatePicker/WdatePicker.js" type="text/javascript"></script>
<script type="text/javascript">
var count = 1;//上传组件个数
$(function() {
//添加上传组件
$("#btnAdd").click(function() {
if ($("#DivUploads").find(":button").length >= 7) {
alert(
'最多只能添加八个上传组件!');
return;
}
var strHtml = '<span><input type="file" name="fileUpload" runat="server" />';
strHtml
+= " <input type='button' onclick='delUploadBtn(" + count + ")' value='删除' class=\"btnnm\"/></span>";
$(
"#DivUploads").append(strHtml);
count
++;
});
});
//删除上传组件
function delUploadBtn(index) {
$(
"#DivUploads").find(":button").each(function() {
var text = "" + $(this).attr("onclick");
if (text.indexOf("delUploadBtn(" + index + ")") != -1) {
$(
this).parent().remove();
}
});
}
var deletedStr="";
function Delete(obj)
{
var str=$("#hideOldFileUrl").val()
var arrayStr=str.split("#");
var newValue="";
for(var i=0;i<arrayStr.length;i++)
{
if(arrayStr[i]==obj.id)
{
arrayStr[i]
="";
}
if(arrayStr[i]!="")
{
newValue
+=arrayStr[i]+"#"
}
}
deletedStr
+=obj.id+"#";
$(
"#hideOldFileUrl").val(newValue)
$(
"#HiddenDeleted").val(deletedStr);
// document.getElementById("file"+obj.id).innerHTML=""
var remove_obj = document.getElementById("file"+obj.id);
var parent_obj = remove_obj.parentNode;
parent_obj.removeChild(remove_obj);

}

</script>

</head>
<body>
<form id="form1" runat="server">
<asp:HiddenField runat="server" ID="HiddenDeleted" />
<asp:HiddenField runat="server" ID="hideOldFileUrl" />
<div class="add-div">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="navson-tb">
<tr valign="bottom">
<td valign="middle">
<a>综合信息</a>
</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="1" cellpadding="0" class="xmxx-tb xxcx">
<tr>
<td class="xtsz-bg">
<div>
<asp:Button ID="btn_save" runat="server" CssClass="btnnm" onMouseOver="this.className='btnon'"
onMouseOut
="this.className='btnnm'" Text="提 交" OnClientClick="return Func.checkData();"
OnClick
="btn_save_Click" />
<input type="button" id="btn_back" runat="server" class="btnnm" onmouseover="this.className='btnon'"
onmouseout
="this.className='btnnm'" value="返 回" onclick="history.go(-1)">
</div>
</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="1" cellpadding="0" class="xmxx-tb xxcx">
<tr>
<td class="zftitle" style="width: 12%">
信息标题
</td>
<td style="width: 38%">
<textarea id="txt_xxbt" runat="server" class="txt-box" cols="90" rows="4" style="overflow: auto;
width: 98%; height: 40px"
allowempty="false" emptyerrormessage="请填写标题!"></textarea>
<font style="color: Red;">*</font>
</td>
</tr>
<tr>
<td class="zftitle" style="width: 12%">
信息内容
</td>
<td style="width: 38%">
<textarea id="txt_xxnr" runat="server" class="txt-box" cols="90" style="overflow: auto;
width: 98%; height: 100px"
></textarea>
</td>
</tr>
<tr>
<td class="zftitle" style="width: 12%">
有效时间
</td>
<td style="width: 38%">
<input type="text" class="txtbox boxwidth-xxcx" id="txt_lrsj" onclick="WdatePicker()"
maxlength
="30" allowempty="false" emptyerrormessage="请填写录入时间!" readonly="readonly"
runat
="server" /><font style="color: Red;">*</font>
<input type="text" class="txtbox boxwidth-xxcx" id="txt_jssj" onclick="WdatePicker()"
maxlength
="30" allowempty="false" emptyerrormessage="请填写录入时间!" readonly="readonly"
runat
="server" /><font style="color: Red;">*</font>
</td>
</tr>
<tr>
<td class="zftitle" style="width: 12%">
联系人
</td>
<td>
<textarea id="txt_lxr" runat="server" class="txt-box" style="overflow: auto; width: 98%;
height: 40px"
></textarea>
</td>
</tr>
<tr>
<td class="zftitle" style="width: 12%">
录入部门
</td>
<td>
<asp:Label ID="txt_lrr" runat="server" Text="Label"></asp:Label>
</td>
</tr>
<tr>
<td class="zftitle" style="width: 12%">
联系电话
</td>
<td>
<textarea id="txt_lxdh" name="txt_lxdh" runat="server" class="txt-box" style="overflow: auto;
width: 98%; height: 40px"
></textarea>
<input id="txt_userid" runat="server" type="hidden" />
<input id="txt_lbcode" runat="server" type="hidden" />
<input id="txt_gxbm" runat="server" type="hidden" />
<input id="txt_lrbm" runat="server" type="hidden" />

</td>
</tr>
<tr>
<td class="zftitle" style="width: 12%">
备注
</td>
<td>
<textarea id="txt_bz" runat="server" class="txt-box" style="overflow: auto; width: 98%;
height: 100px"
></textarea>
</td>
</tr>

<tr>
<td colspan="2">
</td>
</tr>
<tr>
<td class="zftitle" style="width: 12%">
上传附件
</td>
<td>
<asp:FileUpload ID="FileUploadWord" class="multi" runat="server" accept="doc|xls|rar" maxlength="5" />
<%-- <asp:CheckBox ID="cb_saveOld" runat="server" Text="是否保留历史文件" /> --%>
<%-- <input type="button" id="btnAdd" class="btnnm" value="添加" />--%>
<div id="DivUploads" style="border:opx solid;width:300px;height:auto;"></div>

<%
string uploadFile = Wbxm.Func.DataBind(ds, "upFileUrl");
if(!string.IsNullOrEmpty(uploadFile))
{
%>

<%
foreach (
string url in uploadFile.Split('#'))
{
if(!string.IsNullOrEmpty(url))
{
%>

<div id='file<%=url %>'>
<a style="cursor:pointer; color:Blue" id='<%=url %>' onclick="Delete(this)"> 删除</a>
<a href='UploadFile.aspx?url=<%=url %>' ><%=url.Substring(0,url.LastIndexOf("$")) %></a>

</div>
<%}}%>

<%} %>
</td>
</tr>

</table>
</div>
</form>

<script type="text/javascript">
// 初始化提醒信息
Func.initDataTypeEvent();
</script>

</body>
</html>


protected void btn_save_Click(object sender, EventArgs e)
{

string allFileName = string.Empty;
if (Convert.ToDateTime(txt_lrsj.Value) > Convert.ToDateTime(txt_jssj.Value))
{
ShowMessage(MessageType.Info, "结束时间比录入时间小,请重新输入!");
return;
}
string filepath = Request.Form["fileUpload"];
string savePath = Server.MapPath("../Upload\\");//上传文件保存路径
if (!Directory.Exists(savePath))
{
Directory.CreateDirectory(savePath);
}
HttpFileCollection uploadFiles = Request.Files;
for (int i = 0; i < uploadFiles.Count; i++)
{
if (uploadFiles[i].FileName != "")
{
string fileName1 = Path.GetFileName( uploadFiles[i].FileName); //获取初始文件名
if (fileName1.Contains("#"))
{
ShowMessage(MessageType.Info, "上传文件名中不能包括#字符");
return;
}
if (fileName1.Contains("$"))
{
ShowMessage(MessageType.Info, "上传文件名中不能包括$字符");
return;
}
int j = fileName1.LastIndexOf("."); //取得文件名中最后一个"."的索引
string newext = fileName1.Substring(j); //获取文件扩展名
//if (newext != ".gif" && newext != ".jpg" && newext != ".jpeg" && newext != ".bmp" && newext != ".png" && newext != ".doc" && newext != ".docx")
//{
// ShowMessage(MessageType.Info, "上传文件格式不正确!");
// break;
//}
//else
// {
string FileName2 = fileName1.Substring(0, fileName1.LastIndexOf(".")) +"$"+ DateTime.Now.ToString("yyyyMMddHHmmss") + newext;
allFileName += FileName2 + "#";
uploadFiles[i].SaveAs(savePath + FileName2);
// }
}
}
//if ( !string.IsNullOrEmpty(this.FileUploadWord.FileName))
//{
// fileName1 = FileUploadWord.FileName; //获取初始文件名
// ;
// int i = fileName1.LastIndexOf("."); //取得文件名中最后一个"."的索引
// string newext = fileName1.Substring(i); //获取文件扩展名
// if (newext != ".gif" && newext != ".jpg" && newext != ".jpeg" && newext != ".bmp" && newext != ".png" && newext!=".doc"&&newext!=".docx")
// {
// ShowMessage(MessageType.Info, "上传文件格式不正确!");
// return;
// }
// FileName2 = fileName1.Substring(0, fileName1.LastIndexOf(".")) + DateTime.Now.ToString("yyyyMMddHHmmss") + newext;
// uploadUrl = Server.MapPath("../Upload\\" + FileName2);
// FileUploadWord.PostedFile.SaveAs(uploadUrl); // 保存文件到路径,用Server.MapPath()取当前文件的绝对目录.在asp.net里"\"必须用"\\"代替
//}
SaveData(allFileName);
}
}
}