NeatUpload的安装使用

本文介绍如何使用NeatUpload组件实现大文件的分块上传功能,并展示了详细的配置步骤、页面设计与进度条样式的定制方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

版本:NeatUpload-1.2.32,用于文件上传。可传大文件。

 

1.VS工具箱中点右键选“选择项”…… Brettle.Web.NeatUpload.dll添加到工具箱。

可以在添加后的工具箱看到相应控件。

 

2.新建web项目。将NeatUpload复制到项目根目录。

3.修改Web.config

<?xmlversion="1.0"encoding="utf-8"?>

 

<configuration>

 

    <configSections>

        <sectionGroupname="system.web">

            <sectionname="neatUpload"type="Brettle.Web.NeatUpload.ConfigSectionHandler, Brettle.Web.NeatUpload"allowLocation="true" />

        </sectionGroup>

    </configSections>

 

    <appSettings/>

    <connectionStrings/>

 

    <system.web>

        <neatUploaduseHttpModule="false"maxNormalRequestLength="4096"maxRequestLength="2097151"defaultProvider="FilesystemUploadStorageProvider">

            <providers>

                <addname="FilesystemUploadStorageProvider"

               type="Brettle.Web.NeatUpload.FilesystemUploadStorageProvider, Brettle.Web.NeatUpload" />

            </providers>

        </neatUpload>

        <compilationdebug="false">

        </compilation>

        <authenticationmode="Windows" />

        <httpModules>

           <!--如果不加这httpmodules,进度条不显示-->

           <addname="UploadHttpModule"type="Brettle.Web.NeatUpload.UploadHttpModule, Brettle.Web.NeatUpload"/>

        </httpModules>

    </system.web>

    <locationpath="Default.aspx" >

        <system.web>

           <neatUploaduseHttpModule="true" />

            <httpRuntimemaxRequestLength="2097151"executionTimeout="3600"useFullyQualifiedRedirectUrl="true" />

        </system.web>

    </location>

</configuration>

 

 

现在可以拖拽控件开始编程了。

4.aspx页面代码如下:

<headrunat="server">

    <title> NeatUpload </title>

    <script type="text/javascript"language="javascript">

       function ToggleVisibility(id, type)

       {

           el = document.getElementById(id);

           if(el.style)

           {

               if(type == 'on')

               { 

                  el.style.display ='block';

               }

               else

               { 

                  el.style.display ='none';

               }

           }

           else

           {

               if(type == 'on')

               { 

                   el.display ='block';

               }

               else

               {      

                  el.display ='none';

               }

           }

       }

   </script>

</head>

<body>

    <form id="form1"runat="server">

    <div>

        <Upload:InputFileID="AttachFile" runat="server" />

   <asp:ButtonID="Upload" runat="server" Text="Upload"

            OnClientClick="ToggleVisibility('ProgressBar','on')"onclick="Upload_Click"/>

       <div id="ProgressBar">

       <Upload:ProgressBarID="pbProgressBar"runat='server' Inline="true" Width="280px"

               Height="50px">

       </Upload:ProgressBar>

   </div>

   </div>

    </form>

</body>

</html>

 

设计页面如下:

 

5.按钮事件处理函数:

protectedvoid Upload_Click(object sender,EventArgs e)

        {

            string FileName = this.AttachFile.FileName;//获取上传文件的全路径

            string ExtenName = System.IO.Path.GetExtension(FileName);//获取扩展名

            string SaveFileName = System.IO.Path.Combine(Request.PhysicalApplicationPath,DateTime.Now.ToString("yyyyMMddhhmm") + ExtenName);//合并两个路径为上传到服务器上的全路径

            if (this.AttachFile.ContentLength > 0)

            {

                try

                {

                    this.AttachFile.MoveTo(SaveFileName, Brettle.Web.NeatUpload.MoveToOptions.Overwrite);

                }

                catch (Exception ex)

                {

                    throw ex;

                }

            }

        }

 

做到这里程序就可以运行的了。

默认的进度条的样式是可以修改的。

主要修改default.cssProgress.aspx及ProgressBar控件的属性

 

default.css修改部分:

.ProgressDisplay.ProgressBar {

      background-color:#D7E5F7;

      background-image:url("/11.gif")/*进度条背景图片*/

      height:20px;

}

#normalInProgress{

     color: Red;      /*进度条字体颜色*/

}

#completed{

     color:Blue;   /*上传完成的字体颜色*/

}

 

Progress.aspx是显示进度条的核心文件,相关数据的显示都在里面。

<tdid="barTd" >

              <div id="statusDiv"runat="server" class="StatusMessage">

 

                   <Upload:DetailsSpanid="normalInProgress"runat="server" WhenStatus="NormalInProgress" style="font-weight:normal; white-space:nowrap;">                                <%--  正在上传时显示的   --%>

                   <%-- <%# FormatCount(BytesRead) %>/<%# FormatCount(BytesTotal) %> <%# CountUnits %> --%>

                  (<%#String.Format("{0:0%}", FractionComplete)%>) at <%# FormatRate(BytesPerSec)%>

                   <%-- - <%# FormatTimeSpan(TimeRemaining) %> left        --%>

                   </Upload:DetailsSpan>

 

                   <Upload:DetailsSpanid="chunkedInProgress"runat="server" WhenStatus="ChunkedInProgress" style="font-weight:normal; white-space:nowrap;">       

                    <%# FormatCount(BytesRead)%> <%# CountUnits%>

                       at<%# FormatRate(BytesPerSec)%>

                       -<%# FormatTimeSpan(TimeElapsed)%> elapsed

                   </Upload:DetailsSpan>

                   <Upload:DetailsSpanid="completed" runat="server" WhenStatus="Completed">

                      <%--  上传完成时显示的   --%>

完成了:<%# FormatCount(BytesRead)%> <%# CountUnits%>

                       at<%# FormatRate(BytesPerSec)%>

                       took<%# FormatTimeSpan(TimeElapsed)%>

                   </Upload:DetailsSpan>

                   <Upload:DetailsSpanid="cancelled" runat="server" WhenStatus="Cancelled">

                       Cancelled!

                   </Upload:DetailsSpan>

                   <Upload:DetailsSpanid="rejected" runat="server" WhenStatus="Rejected">

                       Rejected:<%# Rejection !=null ? Rejection.Message : "" %>

                   </Upload:DetailsSpan>

                   <Upload:DetailsSpanid="error" runat="server" WhenStatus="Failed">

                       Error:<%# Failure !=null ? Failure.Message : "" %>

                   </Upload:DetailsSpan>

                   <Upload:DetailsDivid="barDetailsDiv"runat="server" UseHtml4="true"

                        Width='<%# Unit.Percentage(Math.Floor(100*FractionComplete))%>' class="ProgressBar"></Upload:DetailsDiv> 

              </div>

         </td>

 

程序的效果图如下:

上传前:

 

上传中:

 

上传结束:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值