<%@ Page Title="Overview" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" %>
<%@ Register Assembly="AjaxUploader" Namespace="AjaxUploader.Controls" TagPrefix="au" %> 
<asp:Content ID="TitleContent" ContentPlaceHolderID="TitleContent" runat="server">Overview - AjaxUploader v5.2 Demos</asp:Content>
<asp:Content ID="HeaderContent" ContentPlaceHolderID="HeaderTitle" runat="server">Overview</asp:Content> 
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server"> 
<div class="demo-card"> <div class="demo-card-header">AjaxUploader Overview</div> <div class="demo-card-body"> <p class="demo-description"> <strong>AjaxUploader 5.2 is the modern file-upload server control for ASP.NET Web Forms.</strong> One <code>&lt;au:AjaxFileUpload /&gt;</code> tag gives you drag-and-drop, chunked transport, direct-to-cloud
 uploads, encryption, validation, progress tracking, and a polished queue UI - with both a server-control
 and a JavaScript API.
 </p> <div class="demo-expect"><strong>What you should see:</strong> the features most projects use in one control: multiple selection, <code>.jpg/.png/.gif/.pdf/.docx</code> allowlist, a 5&nbsp;MB cap, auto-upload and progress.</div> <h5>Key Features</h5> <ul> <li><strong>7 transport strategies:</strong> classic, chunked, direct-to-S3, direct-to-Azure, direct-to-GCS, tus 1.0, URL import</li> <li><strong>6 cloud sources:</strong> Google Drive, OneDrive, Dropbox, Box, Unsplash, Companion broker</li> <li><strong>Encryption-at-rest:</strong> AES-GCM-256 in the browser, zero-knowledge upload</li> <li><strong>Offline-first queue:</strong> service worker survives tab close and network loss</li> <li><strong>Cross-tab dashboard:</strong> BroadcastChannel-coordinated upload state</li> <li><strong>Image pipeline:</strong> HEIC decode, inline annotation, 5 preset sizes</li> <li>Drag-and-drop file selection (incl. folder upload)</li> <li>Multiple file uploads with drag-to-reorder queue</li> <li>Client-side validation (size, type, extensions, MIME, dimensions)</li> <li>Real-time progress tracking with speed + ETA</li> <li>28 built-in locales including RTL Arabic, Hebrew, Persian</li> <li>Virus-scan hook + <code>/scan</code> endpoint</li> <li>Customizable themes (Bootstrap, Tailwind, Dark)</li> </ul> <h5>Quick Example</h5> <au:AjaxFileUpload ID="Uploader1" runat="server"
 AllowMultiple="true"
 AllowedExtensions=".jpg,.png,.gif,.pdf,.docx"
 MaxFileSize="5MB"
 ButtonText="Select Files"
 AutoUpload="true"
 ShowProgress="true"
 EnableDropZone="true"
 ShowThumbnails="true" /> <div class="code-panel"> <pre><code>&lt;%@ Register Assembly="AjaxUploader" Namespace="AjaxUploader.Controls" TagPrefix="au" %&gt;

&lt;au:AjaxFileUpload ID="Uploader1" runat="server"
 AllowMultiple="true"
 AllowedExtensions=".jpg,.png,.gif,.pdf,.docx"
 MaxFileSize="5MB"
 ButtonText="Select Files"
 AutoUpload="true"
 ShowProgress="true"
 EnableDropZone="true"
 ShowThumbnails="true" /&gt;</code></pre> </div> </div>
</div> 
</asp:Content>
