欢迎来到天天文库
浏览记录
ID:30774196
大小:368.58 KB
页数:16页
时间:2019-01-03
《aspnet无刷新文件上传并显示进度条的实现方法及思路》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Asp.Net无刷新文件上传并显示进度条的实现方法及思路这篇文章详细介绍了无刷新文件上传并显示进度条的思路和代码,有需要的朋友可以参考一下相信通过Asp.Net的服务器控件上传文件在简单不过了,通过AjaxToolkit控件实现上传进度也不是什么难事,为什么还要门己辛辛苦苦來实现呢?我并不否认”拿來主义“,只是我个人更喜欢凡是求个所以然。木篇将阐述通过Html,IHttpHandler和IHttpAsyncHandler实现文件上传和上传进度的原理,希望对你有多帮助。效果图:http://localhost:2978/AsyncReque
2、st.htm-WindowsI....OX“旨http://localhost:2978伽汀」出EP百搜D:Documentsand〔厂IB麵釦妥銚”工帥””£本地Intranet等待http://localhost:29Tf•本文涉及到的知识点:1•前台用到HtmLAjaxJQueryJQueryUI2•后台用到一般处理程序(IHttpHandler)和一般并步处理程序(IHttpAsyncHandler),并涉及到”推模式“一.创建Html网页1>在创建的WebT程中添加一个Html文件,命名为UploadFile.htm,在头文件
3、中引入JQueryJQueryUI复制代码代码如卞:2.关于无刷新文
4、件上传通过Ajax是不能上传文件的,无刷新上传是靠隐藏的讦rame來实现的复制代码代码如下:vinputtype=,,file"id="fileUploadHname=,lfileUploadH/>5、dHname=,lframeFileUploadHstyle=,ldisplay:none;”>要将form标签的target属性设置为iframe的id,当然别忘了将form的enctype设置为multipart/form-data复制代码代码如下:是用來显示上传文件时的进度条在JS中加入如下处理:复制代码代码如下:$(function(){S6、f^submit'TbuttonO;$("#fileUpload").button));});此时效果:q■17、publicvoidProcessRequestfHttpContextcontext){〃如果提交的文件名是空,则不处理讦(context.Request.Files.Count==011string.lsNullOrWhiteSpace(context.Request.Files[0].FileName))return;〃获取文件流Streamstream=context.Request.Files[0]」nputStream;〃获取文件名称stringfileName=Path.GetFileName(context.Request8、.Files[O].FileName);〃声明字节数组byte[]buffer;〃为什么是4096呢?这是操作系统中最小的分配空间,如果你的文件只有100个字节,瓦实它占用的空间是4096个字
5、dHname=,lframeFileUploadHstyle=,ldisplay:none;”>要将form标签的target属性设置为iframe的id,当然别忘了将form的enctype设置为multipart/form-data复制代码代码如下:是用來显示上传文件时的进度条在JS中加入如下处理:复制代码代码如下:$(function(){S
6、f^submit'TbuttonO;$("#fileUpload").button));});此时效果:q■17、publicvoidProcessRequestfHttpContextcontext){〃如果提交的文件名是空,则不处理讦(context.Request.Files.Count==011string.lsNullOrWhiteSpace(context.Request.Files[0].FileName))return;〃获取文件流Streamstream=context.Request.Files[0]」nputStream;〃获取文件名称stringfileName=Path.GetFileName(context.Request8、.Files[O].FileName);〃声明字节数组byte[]buffer;〃为什么是4096呢?这是操作系统中最小的分配空间,如果你的文件只有100个字节,瓦实它占用的空间是4096个字
7、publicvoidProcessRequestfHttpContextcontext){〃如果提交的文件名是空,则不处理讦(context.Request.Files.Count==011string.lsNullOrWhiteSpace(context.Request.Files[0].FileName))return;〃获取文件流Streamstream=context.Request.Files[0]」nputStream;〃获取文件名称stringfileName=Path.GetFileName(context.Request
8、.Files[O].FileName);〃声明字节数组byte[]buffer;〃为什么是4096呢?这是操作系统中最小的分配空间,如果你的文件只有100个字节,瓦实它占用的空间是4096个字
此文档下载收益归作者所有