Upload (Obsolete)


All Controls

Upload (Obsolete)

Rate this demo

Thank you for your post!
Submit a support ticket
If you have an active license or trial, you have access to dedicated support from Telerik’s developers. Response time is 24h for active licenses and 72h for trials, Mon-Fri.
Post in the forums
If you don’t have access to support or would like to help other people by sharing your problem, reach out to our active community in the forums.

RadUpload - Telerik's ASP.NET Upload

RadUpload has been replaced by RadAsyncUpload, Telerik’s next-generation ASP.NET upload component.

If you are considering Telerik’s Upload control for new development, check out the demos of RadAsyncUpload or the control’s product page.

If you are already using RadUpload in your projects, you may be interested in reading how easy the transition to RadAsyncUpload is and how you can benefit from it in this blog post.

The official support for RadUpload has been discontinued in June 2013 (Q2’13), although it will still be available in the suite. We deeply believe that RadAsyncUpload can better serve your upload needs and we kindly ask you to transition to it to make sure you take advantage of its support and the new features we constantly add to it.


No uploaded files yet
  • Uploaded % ( ) Total
  • Uploaded files: % () Total files:
  • Uploading file:
  • Elapsed time:  Estimated time:  Speed:

About RadUpload for ASP.NET AJAX

Telerik RadUpload for ASP.NET AJAX tightly integrates three controls and provides scalable file web-upload handling with comprehensive information about the upload progress. Its highly efficient proprietary HttpModule allocates minimum server memory and enables optimized configurable single- and multi-file uploads.

RadUpload and 80+ other controls are part of UI for ASP.NET AJAX, a comprehensive toolset taking care of the common functionality of your application, while leaving you with more time to work on its business logic.

Get Started

  • Use Telerik’s Visual Studio Extensions (which you have installed together with the Telerik controls) to quickly create, upgrade and configure your Telerik UI projects. Save time by using the ready-to-use Visual Studio templates that cover common application scenarios.
  • Find the controls in need in your VS toolbox and use the Design-time surface and rich wizards to configure them quickly.
  • If you’d like to learn more about how to best implement the controls, browse the Telerik folder in your Start menu and use the shortcuts there to access the local demos, online documentation or open the sample examples app in Visual Studio.
  • If you like this particular Upload demo, you can use the following path to find it in the sample website application:

Key Features

  • Provides the end-user with live progress monitoring as their file is being uploaded.
  • Keyboard Support.
  • Rich client-side Api.
  • Build-in validation.


Show code in new window Demo isolation steps
<%@ Page Language="c#" CodeFile="DefaultCS.aspx.cs" AutoEventWireup="true" Inherits="Upload.Examples.Overview.DefaultCS" %>
<%@ Register Src="~/Upload/Examples/Overview/Info.ascx" TagPrefix="qsf" TagName="Info" %>
<%@ Register src="~/Upload/Examples/ObsoleteMessage.ascx" tagname="ObsoleteMessage" tagprefix="obsoleteMessageUC" %>
<%@ Register TagPrefix="qsf" Namespace="Telerik.QuickStart" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns='http://www.w3.org/1999/xhtml'>
<head runat="server">
    <title>ASP.NET Upload Examples | RadUpload control by Telerik</title>
    <link rel="stylesheet" type="text/css" href="styles.css"/>
    <form id="form1" runat="server">
    <telerik:RadScriptManager runat="server" ID="RadScriptManager1" />
    <telerik:RadSkinManager ID="QsfSkinManager" runat="server" ShowChooser="true" />
    <telerik:RadFormDecorator ID="QsfFromDecorator" runat="server" DecoratedControls="All" EnableRoundedCorners="false" />
      <obsoleteMessageUC:ObsoleteMessage ID="ObsoleteMessage1" runat="server" />
    <qsf:ConfiguratorPanel runat="server" ID="ConfigurationPanel1" Title="Configuration">
        <div style="height: 110px;">
            <asp:Panel ID="elementSetPanel" runat="server" CssClass="qsf-ib">
                <div class="title">
                    Set of visible elements</div>
                <asp:RadioButton ID="radiobuttonNone" runat="server" Text="None" GroupName="visibilityOptions">
                </asp:RadioButton><br />
                <asp:RadioButton ID="radiobuttonDefault" runat="server" Text="Default" Checked="True"
                    GroupName="visibilityOptions"></asp:RadioButton><br />
                <asp:RadioButton ID="radiobuttonAll" runat="server" Text="All" GroupName="visibilityOptions">
                </asp:RadioButton><br />
                <asp:RadioButton ID="radiobuttonCustom" runat="server" Text="Custom" GroupName="visibilityOptions">
                <asp:Panel ID="checkboxPanel" runat="server" Style="display: none">
                    <asp:CheckBox ID="checkboxCheckBoxes" runat="server" Text="CheckBoxes"></asp:CheckBox><br />
                    <asp:CheckBox ID="checkboxRemoveButtons" runat="server" Text="Remove Buttons"></asp:CheckBox><br />
                    <asp:CheckBox ID="checkboxClearButtons" runat="server" Text="Clear Buttons"></asp:CheckBox><br />
                    <asp:CheckBox ID="checkboxAddButton" runat="server" Text="Add Button"></asp:CheckBox><br />
                    <asp:CheckBox ID="checkboxDeleteSelectedButton" runat="server" Text="Delete Button">
            <asp:Panel ID="fileInputCountPanel" runat="server" CssClass="qsf-ib">
                <div class="title">
                    File inputs count</div>
                <label for="textboxInitialFileInputsCount_text">
                <telerik:RadNumericTextBox runat="server" ID="textboxInitialFileInputsCount" ShowSpinButtons="true"
                    Width="50px" MinValue="1" NumberFormat-DecimalDigits="0">
                <br />
                <br />
                <label for="textboxMaxFileInputsCount_text">
                <telerik:RadNumericTextBox runat="server" ID="textboxMaxFileInputsCount" ShowSpinButtons="true"
                    Width="50px" MinValue="1" NumberFormat-DecimalDigits="0">
            <div id="buttonWrapper">
                <asp:Button ID="buttonApplyChanges" runat="server" Text="Apply Changes" OnClick="ButtonApplyChangesClick" ></asp:Button>
    <br />
    <br />
    <telerik:RadProgressManager ID="Radprogressmanager1" runat="server"></telerik:RadProgressManager>
                <telerik:RadUpload ID="RadUpload1" runat="server">
                    <asp:Label ID="labelNoResults" runat="server" Visible="True">No uploaded files yet</asp:Label>
                    <asp:Repeater ID="repeaterResults" runat="server" Visible="False">
                            <div class="title">
                                Uploaded files in the target folder:</div>
                            <%#DataBinder.Eval(Container.DataItem, "FileName")%>
                            <%#DataBinder.Eval(Container.DataItem, "ContentLength").ToString() + " bytes"%>
                            <br />
    <div class="submitArea">
        <asp:Button runat="server" ID="SubmitButton" Text="Upload files" OnClick="SubmitButton_Click">
    <telerik:RadProgressArea runat="server" ID="ProgressArea1">
    <script type="text/javascript">
                    function pageLoad ()
                         function enableCustomFields()
                              var panelWithCheckboxes = $get("<%=checkboxPanel.ClientID%>");
                                   panelWithCheckboxes.style.display = 'none';
                                   panelWithCheckboxes.style.display = 'block';
                         var elementSetRadios = $get("<%=elementSetPanel.ClientID%>").getElementsByTagName('input');
                         for (var i = 0, len = elementSetRadios.length; i < len; i++)
                              if (elementSetRadios[i].type == "radio")
                                   elementSetRadios[i].onclick = enableCustomFields;