Asp.Net上传大文件带进度条swfupload

Asp.Net基于swfupload上传大文件带进度条百分比显示,漂亮大气上档次,大文件无压力,先看效果

一、上传效果图

1、上传前界面:图片不喜欢可以自己换

2、上传中界面:百分比显示

3、上传后返回文件地址,我测试呢所以乱写的

二、核心代码

upload.htm代码

<!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>博客园:webapi</title>
    <link href="css.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="swfupload/swfupload.js"></script>
    <script type="text/javascript" src="js/swfupload.queue.js"></script>
    <script type="text/javascript" src="js/fileprogress.js"></script>
    <script type="text/javascript" src="js/filegroupprogress.js"></script>
    <script type="text/javascript" src="js/handlers.js"></script>
    <script type="text/javascript">
        var swfu;

        window.onload = function () {
            var settings = {
                flash_url: "swfupload/swfupload.swf",
                upload_url: "uploadFile.ashx",
                file_size_limit: "409600",
                file_types: "*.apk;*.ipa",
                file_types_description: "Web Image Files",
                file_size_limit: "307200",
                file_upload_limit: 1,
                file_queue_limit: 1,
                custom_settings: {
                    progressTarget: "divprogresscontainer",
                    progressGroupTarget: "divprogressGroup",

                    //progress object
                    container_css: "progressobj",
                    icoNormal_css: "IcoNormal",
                    icoWaiting_css: "IcoWaiting",
                    icoUpload_css: "IcoUpload",
                    fname_css: "fle ftt",
                    state_div_css: "statebarSmallDiv",
                    state_bar_css: "statebar",
                    percent_css: "ftt",
                    href_delete_css: "ftt",

                    //sum object
                    /*
                    页面中不应出现以"cnt_"开头声明的元素
                    */
                    s_cnt_progress: "cnt_progress",
                    s_cnt_span_text: "fle",
                    s_cnt_progress_statebar: "cnt_progress_statebar",
                    s_cnt_progress_percent: "cnt_progress_percent",
                    s_cnt_progress_uploaded: "cnt_progress_uploaded",
                    s_cnt_progress_size: "cnt_progress_size"
                },
                debug: false,

                // Button settings
                button_image_url: "images/btnupload.png",
                button_width: "301",
                button_height: "171",
                button_placeholder_id: "spanButtonPlaceHolder",
                //button_text: ‘<span class="theFont">上传文件</span>‘,
                //button_text_style: ".theFont {background-image: url(‘images/btnupload.png‘);width:301px;height:171px}",
                //button_text_left_padding: 12,
                //button_text_top_padding: 3,

                // The event handler functions are defined in handlers.js
                file_queued_handler: fileQueued,
                file_queue_error_handler: fileQueueError,
                upload_start_handler: uploadStart,
                upload_progress_handler: uploadProgress,
                upload_error_handler: uploadError, //uploadError
                upload_success_handler: uploadOk, //uploadSuccess
                //upload_complete_handler: uploadComplete, //uploadComplete
                file_dialog_complete_handler: fileDialogComplete
            };
            swfu = new SWFUpload(settings);
        };
        function uploadOk(file, serverData) {
            if (serverData != "0") {
                alert("上传完成!" + serverData);
            } else {
                alert("上传失败!");
                swfu.setButtonDisabled(false); //启用上传按钮
            }
        }
    </script> 

</head>
<body>
    <div id="main_upload">
        <form id="frmMain" action="upload.ashx" runat="server" enctype="multipart/form-data">
        <span id="spanButtonPlaceHolder"></span>
        <div id="divprogresscontainer"></div>
        <div id="divprogressGroup"></div> http://www.cnblogs.com/webapi/p/5811304.html
        </form>
    </div>
</body>
</html>

uploadFile.ashx代码

<%@ WebHandler Language="C#" Class="uploadFile" %>

using System;
using System.Web;
using System.IO;

public class uploadFile : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        string PathName = HttpContext.Current.Server.MapPath("file/");
        string NewsName = DateTime.Now.ToString("yyyyMMddHHmmssfff");
        string NewsPathName = Path.Combine(PathName, NewsName);
        DateTime Dtime = System.DateTime.Now;

        HttpPostedFile file = HttpContext.Current.Request.Files["Filedata"];

        if (file != null && file.ContentLength > 0 && !string.IsNullOrEmpty(file.FileName))
        {
            file.SaveAs(NewsPathName + Path.GetFileName(file.FileName));
        }
        context.Response.Write("ok123");
        context.Response.End();
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }

}

源码打包下载地址:http://download.csdn.net/detail/pan524365501/9614045

本文地址:http://www.cnblogs.com/webapi/p/5811304.html

时间: 2024-10-12 17:05:25

Asp.Net上传大文件带进度条swfupload的相关文章

Extjs+Asp.net实现上传大文件带实时进度条

主要是为了记录自己的学习过程,整理自己的思路以便以后的学习. 首先先说一下整体的思路. 我门都知道,asp自带的上传文件是先将上传的文件整个读取到内存然后在写入磁盘的.如果文件很大的话,上传时就会出现页面停滞,没有任何反映.用户根本不知道页面在做什么,也不知道是否在上传,上传了多少?这样的用户体验是很差的. 所以我门需要实现一个进度条来反映文件上传的进度,可以反映文件写入的进度.具体的思路是通过asp.net提供的HttpModule(Http模块)中的init方法内订阅各种应用程序事件(如Be

asp.net上传大文件-请求筛选模块被配置为拒绝超过请求内容长度的请求

HTTP错误404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求,原因是Web服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值(IIS 7 默认文件上传大小时30M). 要解决方法即是更改ASP.NET文件上传大小限制: 1. 修改IIS的applicationhost.config 文件位置: %windir%/system32/inetsrv/config/applicationhost.config 找到<requestFiltering>节

应用HtmlInputFile进行大文件上传 解决asp.net上传大文件默认文件大小限制

选择一个文件,也可以正确上传至服务器,但您会发现文件大于2048的时候,出现:Internet Explorer显示 "The page cannot be displayed - Cannot find server or DNS Error",并且是怎么也catch不了这个错误. 解决的办法如下: 在web.config文件中增加上面代码,将可以解决上诉文件,这样小于10M的文件都没有问题 <system.web> <httpRuntime  executionT

js无刷新上传大文件

这个是看了网上一个的,具体链接忘记了,我手动测试了下 注意:不支持移动端,在安卓和ios上面上传直接卡死了(百度一款大文件上传插件可以参考,兼容了移动端) 直接上demo: 前端html和js部分: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns=&quo

uploadify上传大文件

引言 之前使用Uploadify做了一个上传图片并预览的功能,今天在项目中,要使用该插件上传大文件.之前弄过上传图片的demo,就使用该demo进行测试.可以查看我的这篇文章: [Asp.net]Uploadify所有配置说明,常见bug问题分析 . 大文件上传 第一步:修改uploadify参数 1 'fileSizeLimit': '0',//单个文件大小,0为无限制,可接受KB,MB,GB等单位的字符串值 2 'fileTypeDesc': '文件',//文件描述Image Files 3

WCF利用Stream上传大文件

WCF利用Stream上传大文件 转自别人的文章,学习这个例子,基本上wcf也算入门了,接口用法.系统配置都有了 本文展示了在asp.net中利用wcf的stream方式传输大文件,解决了大文件上传问题.主要是存档方便以后遇到该问题是来查阅.贴出部分代码,如果有疑惑或需要完整代码的请留言 WebForm1.aspx.cs protected void Button1_Click(object sender, EventArgs e) {             FileData file = n

IIS上传大文件

IIS7.0上传文件限制的解决方法 在 Windows7(iis7.5).Win2008(iis 7.0)和Win2003(iis 6.0) 中,默认设置是特别严格和安全的,这样可以最大限度地减少因以前太宽松的超时和限制而造成的攻击.指定 ASP 请求的实体主体中允许大小为 200,000 (IIS6为204,800) 个字节,在 iis 6.0 之前的版本中,例如:Windows XP(IIS 5.1),没有限制. 这就造成了文件上传不能超过200k,而事实上是提交数据不能超过200k,你可以

上传大文件&amp;验证码

c#如何上传大文件? 想要想上传大文件,必须在web.config文件中进行配置. 在<system.web>节点中添加如下代码即可: <httpRuntime maxRequestLength="2097151"/> 这个代码就是表示设置最大请求值,上传文件也就相当于请求.maxRequestLength单位为KB,最大值为:209715 如果不设置,默认为4096 KB (4 MB). 也就是说上传的文件最大可以上传2G以内的文件. 一般没有配置的话,默认只

上传大文件的解决方案

需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制. 第一步: 前端修改 由于项目使用的是BJUI前端框架,并没有使用框架本身的文件上传控件,而使用的基于jQuery的Uploadify文件上传组件,在项目使用的jslib项目中找到了BJUI框架集成jQuery Uploadify的部分,这部分代码封装在bjui-all.js文件中, 在bjui-all.js文件中的全局变量定义中有以下