asp.net单文件带进度条上传的解决方案
|
最近做项目中遇到很多问题,比如带进度条的文件上传,看了网上很多资料还没找到真正意义上的ASP.NET实现进度条上传(可能是我没找到),下面我来跟大家分享一下我实现的这个程序。
先解释一下这个程序,该程序采用了jquery框架,实现了小文件上传,不超过80Mb,可以在web.config文件中进行相应的配置,但是有个最大值,具体需要查看msdn。开发环境采用visual studio 2013 .net framework 4.5,运行的时候大家注意一下是否满足要求,好了,下面直入正题。 index.htm就是文件上传页面,提交form给UploadHandler目录下的Default.aspx,以实现文件上传。
<!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>
<title>ASP.NET Ajax文件上传进度条示例</title>
<meta name="author" content="李检全" />
<link href="Styles/base.css" rel="stylesheet" type="text/css" />
<script src="Scripts/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="Scripts/jquery-ui-1.8.2.custom.min.js" type="text/javascript"></script>
<script src="Scripts/ljq.lib.js" type="text/javascript"></script>
<script src="Scripts/Ajax/GuidGet.js" type="text/javascript"></script>
<script src="Scripts/Ajax/ajax-progress-upload.js" type="text/javascript"></script>
</head>
<body>
<div id="upload_demo">
<div class="title">ASP.NET Ajax 文件上传进度条示例</div>
<form action="UploadHandler/Default.aspx" enctype="multipart/form-data" method="post" target="upload_hidden_iframe">
<input id="guid" name="guid" value="" type="hidden" />
<p>*本程序适合小文件上传,不超过80Mb</p>
<p>文件地址</p>
<input name="upload_file" type="file" />
<br />
<p>文件描述</p>
<textarea name="description_file"></textarea>
<br />
<br />
<input type="submit" value="上传文件" />
</form>
</div>
<div id="back_panel"></div>
<div id="upload_panel">
<div id="upload_title">文件上传</div>
<div id="upload_content">
<ul>
<li id="finished_percent">正在准备上传...</li>
<li><div id="upload_bar"><div id="upload_progress"></div></div></li>
<li id="upload_speed"></li>
<li id="upload_costTime"></li>
<li id="upload_fileSize"></li>
<li id="upload_fileName"></li>
</ul>
<div id="upload_detail"></div>
<div id="upload_choose">
<span id="upload_cancel">取消</span><span id="upload_submit">确定</span>
</div>
</div>
</div>
<iframe name="upload_hidden_iframe" style="display:none;"></iframe>
</body>
</html>
第二步,创建GenerateGuid.ashx文件,作用就是生成唯一的Guid。
<%@ WebHandler Language="C#" Class="ProgressHandler.Handler" %>
using System;
using System.Web;
using System.Xml.Linq;
namespace ProgressHandler
{
public class Handler : IHttpHandler
{
/// <summary>
/// 获得上传文件的GUID
/// </summary>
/// <param name="context">当前请求实体</param>
/// <creattime>2015-06-28</creattime>
/// <author>FreshMan</author>
public void ProcessRequest(HttpContext context)
{
context.Response.Charset = "utf-8";
context.Response.ContentType = "application/xml";
var guid = Guid.NewGuid().ToString();
var doc = new XDocument();
var root = new XElement("root");
var xGuid = new XElement("guid", guid);
root.Add(xGuid);
doc.Add(root);
context.Response.Write(doc.ToString());
context.Response.End();
}
public bool IsReusable
{
get { return false; }
}
}
}
(编辑:开发网_商丘站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如果在T-SQL中记录为NULL,如何替换字符串
- html+css 实现图片右上角加删除叉、图片删除按钮
- hyper-v – Hyper V 2012和SQL Cluster Live迁移
- sql-server – 如何在SQl Server 2008中选择distinct,但仅限
- .net – 数据库本地化 – 查找列表 – 更智能的方式
- sql-server – 如何获取SQL Server表中每行的实际数据大小?
- 获得更多数据库性能 – postgresql
- 浅谈SQL分页查询方式,你都知道哪些?
- 软件业亟待突破“测试”瓶颈 三大原因滞后发展
- 我们发现SQL Server2008R2站长网 aspzz.cn和SQL Server2012




