Tab
A newer version of this page is available. Switch to the current version.

ASPxUploadControl Class

A file upload control.

Namespace: DevExpress.Web

Assembly: DevExpress.Web.v18.2.dll

Declaration

public class ASPxUploadControl :
    ASPxWebControl,
    IAssociatedControlID,
    ICallbackEventHandler
Public Class ASPxUploadControl
    Inherits ASPxWebControl
    Implements IAssociatedControlID,
               ICallbackEventHandler

Remarks

The Upload Control can upload files with AJAX callbacks for improved responsiveness, offers built-in file validation support, and ships with an advanced client-side API.

UploadControl_class.png

Create an Upload Control

Design Time

The ASPxUploadControl control is available on the DX.18.2: Common Controls toolbox tab in the Microsoft Visual Studio IDE.

UploadControl_Toolbox.png

Drag the control onto a form and customize control settings, or paste the control markup in the page's source code.

<dx:ASPxUploadControl ID="ASPxUploadControl1" runat="server" UploadMode="Auto" ShowProgressPanel="True" ShowUploadButton="True">
     <ValidationSettings AllowedFileExtensions=".jpg, .jpeg, .gif, .png" MaxFileSize="4194304">
     </ValidationSettings>
     <AdvancedModeSettings EnableDragAndDrop="True" EnableFileList="True" EnableMultiSelect="True">
     </AdvancedModeSettings>
</dx:ASPxUploadControl>

Run Time

using DevExpress.Web;
...
protected void Page_Load(object sender, EventArgs e) {
     ASPxUploadControl uploadControl = new ASPxUploadControl();
     uploadControl.ID = "ASPxUploadControl1";
     uploadControl.UploadMode = UploadControlUploadMode.Auto;
     uploadControl.ShowProgressPanel = true;
     uploadControl.ShowUploadButton = true;
     uploadControl.AdvancedModeSettings.EnableDragAndDrop = true;
     uploadControl.AdvancedModeSettings.EnableFileList = true;
     uploadControl.AdvancedModeSettings.EnableMultiSelect = true;
     uploadControl.ValidationSettings.AllowedFileExtensions = new String[] { ".jpg", ".jpeg", ".gif", ".png" };
     uploadControl.ValidationSettings.MaxFileSize = 4194304;
     uploadControl.FileUploadMode = UploadControlFileUploadMode.OnPageLoad;
     // Add the created control to the page
     Page.Form.Controls.Add(uploadControl);
}

Client-Side API

The ASPxUploadControl's client-side API is implemented with JavaScript language and exposed by the ASPxClientUploadControl object.

Availability

Available by default.

Class name

ASPxClientUploadControl

Access name

ClientInstanceName

Events

ASPxUploadControl.ClientSideEvents

Features

File Upload

The file upload starts when a user clicks the upload button or ASPxClientUploadControl.Upload method is called. Set the AutoStartUpload property to true to start file upload when a file is added to the upload control.

Upload Event Description
ASPxUploadControl.FileUploadComplete Occurs after a file has been uploaded to the server.
ASPxUploadControl.FilesUploadComplete Occurs after all the selected files have been uploaded to the server.
ASPxClientUploadControl.FileUploadStart Obsolete. Occurs on the client side before upload of the specified files starts.
ASPxClientUploadControl.FileUploadComplete Occurs on the client side after a file has been uploaded.
<dx:ASPxUploadControl ID="ASPxUploadControl1" runat="server" OnFileUploadComplete="ASPxUploadControl1_FileUploadComplete">
     <ValidationSettings AllowedFileExtensions=".txt,.jpg,.jpe,.jpeg,.doc" MaxFileSize="1000000">
     </ValidationSettings>
</dx:ASPxUploadControl> 

See demo

Multi-File Selection

To enable multi-file selection, set the AdvancedModeSettings.EnableMultiSelect property to true and the UploadMode property to Advanced.

<dx:ASPxUploadControl ID="UploadControl" UploadMode="Advanced" ...>
     <AdvancedModeSettings EnableMultiSelect="True" />
</dx:ASPxUploadControl>

Learn more | See demo

Integrated File Validation

With file validation, you can automatically validate file information on the server and provide descriptive error messages when necessary. The table below lists the validation properties.

Property

Description

Error Text Property

AllowedFileExtensions

Gets or sets the allowed file extensions of the uploaded file.

NotAllowedFileExtensionErrorText

MaxFileCount

Gets or sets the maximum file count to be uploaded at once.

MaxFileCountErrorText

MaxFileSize

Gets or sets the maximum file size (in bytes).

MaxFileSizeErrorText

<dx:ASPxUploadControl ID="UploadControl" UploadMode="Advanced" ... >
     <AdvancedModeSettings EnableMultiSelect="True" />
     <ValidationSettings MaxFileSize="4194304" MaxFileCount = "5" AllowedFileExtensions=".jpg,.jpeg,.gif,.png">
     </ValidationSettings>
</dx:ASPxUploadControl>

Learn more | See demo

Drag and Drop Support

End users can select multiple files and drag them to the Upload Control. To enable drag and drop functionality, set the AdvancedModeSettings.EnableDragAndDrop property to true and the UploadMode property to Advanced.

<dx:ASPxUploadControl ID="UploadControl" UploadMode="Advanced" ... >
     <AdvancedModeSettings EnableDragAndDrop="True" />
</dx:ASPxUploadControl> 

You can specify external drop zones where users can drop files to add them to the upload control. List zone IDs in the AdvancedModeSettings.ExternalDropZoneID property.

Client Event Description
DropZoneEnter Fires when the mouse enters a drop zone while dragging a file.
DropZoneLeave Fires when the mouse leaves a drop zone while dragging a file.
<div id="externalDropZone" class="dropZoneExternal">
     <div id="dragZone">
            <span class="dragZoneText">Drag an image here</span>
     </div>
     <img id="uploadedImage" src="#" class="hidden" alt="" onload="onImageLoad()" />
     <div id="dropZone" class="hidden">
          <span class="dropZoneText">Drop an image here</span>
     </div>
</div>
<dx:ASPxUploadControl ID="UploadControl" ClientInstanceName="UploadControl" runat="server" UploadMode="Auto" ... >
     <AdvancedModeSettings EnableDragAndDrop="True" ExternalDropZoneID="externalDropZone" DropZoneText="" />
     <ClientSideEvents> 
          DropZoneEnter="function(s, e) { if(e.dropZone.id == 'externalDropZone') setElementVisible('dropZone', true); }" 
          DropZoneLeave="function(s, e) { if(e.dropZone.id == 'externalDropZone') setElementVisible('dropZone', false); }" 
     </ClientSideEvents>
     ...
</dx:ASPxUploadControl>

Learn more | See demo

Cloud Storage Support

The ASPxUploadControl allows users to work with files stored on the most popular cloud services. Use the UploadStorage property to specify the cloud service where the control uploads files.

Cloud Storage Example
Amazon See demo
Azure See demo
Dropbox See demo
GoogleDrive See demo
OneDrive See demo

Learn more

UI Customization

The ASPxUploadControl ships with a rich set of customizable UI elements. Numerous settings and options allow you to fine-tune the upload control's display and layout.

Learn more

Online Demos

Multi-File Selection<