jQuery.Uploadify插件实现带进度条的批量上传功能
本文实例讲述了jQuery.Uploadify插件实现带进度条的批量上传功能。分享给大家供大家参考,具体如下:
<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="UpLoad.aspx.cs"Inherits="UploadifyDemo_UpLoad"%>
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headid="Head1"runat="server">
<title>JqueryUploadify上传带进度条,且多参数</title>
<linkhref="js/jquery.uploadify-v2.1.4/uploadify.css"rel="stylesheet"type="text/css"/>
<scripttype="text/javascript"src="js/jquery.uploadify-v2.1.4/jquery-1.4.2.min.js"></script>
<scripttype="text/javascript"src="js/jquery.uploadify-v2.1.4/swfobject.js"></script>
<scripttype="text/javascript"src="js/jquery.uploadify-v2.1.4/jquery.uploadify.v2.1.4.min.js"></script>
<scripttype="text/javascript">
$(document).ready(function(){
$("#pics").hide();
$("#uploadify").uploadify({
'uploader':'js/jquery.uploadify-v2.1.4/uploadify.swf',//uploadify.swf文件的路径
'script':'UploadHandler.ashx?type=add',//处理文件上传的后台脚本的路径
'cancelImg':'js/jquery.uploadify-v2.1.4/cancel.png',
'buttonText':'SelectImage',
'folder':'UploadFile/<%=DateTime.Now.ToString("yyyyMMdd")%>/',//上传文件夹的路径按20130416
'queueID':'fileQueue',//页面中,你想要用来作为文件队列的元素的id
'auto':false,//当文件被添加到队列时,自动上传
'multi':true,//设置为true将允许多文件上传
'fileExt':'*.jpg;*.gif;*.png',//允许上传的文件后缀
'queueSizeLimit':5,
'fileDesc':'WebImageFiles(.JPG,.GIF,.PNG)',//在浏览窗口底部的文件类型下拉菜单中显示的文本
'sizeLimit':1024000,//上传文件的大小限制,单位为字节1024*10001M
'onComplete':function(event,queueID,fileObj,response,data){
varhtml="";
html+="<liclass=\'myli\'>";
html+="<imgsrc=\""+response+"\"class=\'myimg\'/>";
html+="<divstyle=\"position:absolute;right:8px;bottom:5px\">";
html+="<imgtitle=\"点击删除\"src=\"Images/delete.gif\"onclick=\"delImage(\'"+response+"\');\"/>";
html+="</div>";
html+="</li>";
$("#pics").append(html);
},
'onAllComplete':function(event,data){//当上传队列中的所有文件都完成上传时触发
//alert(data.filesUploaded+'个文件上传成功!');
$("#pics").fadeIn();
}
});
});
functionuploadpara(){
//自定义传递参数
$('#uploadify').uploadifySettings('scriptData',{'name':$('#txtName').val(),'albums':$('#txtAlbums').val()});
$('#uploadify').uploadifyUpload();
}
functiondelImage(picurl){
jsonAjax("UploadHandler.ashx","type=del&picurl="+picurl,"text",callBackTxt);
}
functionjsonAjax(url,param,datat,callback){
$.ajax({
type:"post",
url:url,
data:param,
dataType:datat,
success:callback,
error:function(){
jQuery.fn.mBox({
message:'恢复失败'
});
}
});
}
functioncallBackTxt(data){
varo=data;
if(o!=""){
vare=$(".myliimg[src='"+data+"']");
e.each(function(){
$(this).parent().remove();
})
}else{
alert("删除失败");
}
};
</script>
<styletype="text/css">
.myul
{
margin:5px5px5px5px;
padding:0px;
}
.myli
{
list-style-type:none;
width:150px;
height:150px;
display:inline;
position:relative;
}
.myimg
{
width:120px;
height:120px;
}
</style>
</head>
<body>
<formid="form1"runat="server">
<div>
<divid="fileQueue"></div>
<inputtype="file"name="uploadify"id="uploadify"/>
<divid="pics">
<ulclass="myul">
</ul>
</div>
<div>
<p>
<ahref="javascript:void(0);"onclick="uploadpara();">上传</a>|
<ahref="javascript:$('#uploadify').uploadifyClearQueue()">取消上传</a>
</p>
</div>
</div>
</form>
</body>
</html>
<%@WebHandlerLanguage="C#"Class="UploadHandler"%>
usingSystem;
usingSystem.Web;
usingSystem.IO;
///<summary>
///UploadHandler文件上传
///</summary>
publicclassUploadHandler:IHttpHandler
{
publicvoidProcessRequest(HttpContextcontext)
{
context.Response.ContentType="text/plain";
context.Response.Charset="utf-8";
stringtype=context.Request["type"];
if(type=="add")
{
HttpPostedFilefile=context.Request.Files["Filedata"];
stringuploadPath=HttpContext.Current.Server.MapPath(@context.Request["folder"]);
stringname=context.Request.Params["name"];//获取传递的参数
stringalbums=context.Request.Params["albums"];
if(file!=null)
{
if(!Directory.Exists(uploadPath))
{
Directory.CreateDirectory(uploadPath);
}
file.SaveAs(Path.Combine(uploadPath,file.FileName));
context.Response.Write(@context.Request["folder"]+file.FileName);
}
else
{
context.Response.Write("");
}
}
elseif(type=="del")
{
stringpicurl=context.Request["picurl"];
try
{
File.Delete(context.Server.MapPath(picurl));
context.Response.Write(picurl);
}
catch
{
context.Response.Write("");
}
}
else
{}
}
publicboolIsReusable
{
get
{
returnfalse;
}
}
}
更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jquery中Ajax用法总结》、《jQuery表格(table)操作技巧汇总》、《jQuery拖拽特效与技巧总结》、《jQuery扩展技巧总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》、《jquery选择器用法总结》及《jQuery常用插件及用法总结》
希望本文所述对大家jQuery程序设计有所帮助。