ASP Uploader is a set of ASP scripts and JavaScript files that you copy onto your web server. There is no component to register, no runtime to install, and nothing for the visitor to download.
Web server requirements
| Requirement | Detail |
|---|---|
| Web server | Microsoft IIS with Classic ASP available — the requirement is Classic ASP support itself, not a particular IIS version |
| Scripting | Classic ASP enabled, with VBScript as the page language |
| Operating system | Any Windows edition that can run IIS with Classic ASP, server or desktop |
| Application pool | 32-bit or 64-bit; script has no bitness, so either works |
| Components to install | None. No regsvr32, no registry entries, no .NET runtime |
| Objects used | ADODB.Stream and Scripting.FileSystemObject, both of which ship with Windows |
| Disk space | A few megabytes for the script folder, plus room for the temp folder and your uploads |
On IIS 7 and later, Classic ASP is not installed by default. Add it through Server Manager → Add Roles and Features → Web Server (IIS) → Application Development → ASP, or on a desktop edition through Turn Windows features on or off → Internet Information Services → World Wide Web Services → Application Development Features → ASP.
Folder permissions
The application pool identity — normally IIS AppPool\<YourAppPoolName>
— needs Modify on two folders and nothing else:
- The temporary folder that incoming bytes stream into.
- The destination folder you save finished files to.
The destination folder should also have script and execute permission removed. Step-by-step instructions are in the deployment guide.
Shared hosting
ASP Uploader works on shared Windows hosting, which is much of the point of a pure ASP implementation — there is no administrator step to ask your host for. You need only Classic ASP enabled and write permission on an upload folder, both of which shared control panels normally expose. See pure ASP upload without components.
Supported browsers
ASP Uploader uses standard HTML5 browser features, so every current desktop and mobile browser is supported. Nothing is installed on the visitor's machine — no Flash, no Silverlight, no ActiveX, no Java applet.
| Browser | Windows | macOS | Linux | Mobile |
|---|---|---|---|---|
| Google Chrome | Yes | Yes | Yes | Yes (Android, iOS) |
| Microsoft Edge | Yes | Yes | Yes | Yes |
| Mozilla Firefox | Yes | Yes | Yes | Yes |
| Apple Safari | – | Yes | – | Yes (iOS, iPadOS) |
| Opera, Brave, Vivaldi and other Chromium browsers | Yes | Yes | Yes | Yes |
Feature support by browser capability
| Feature | Requires | Fallback if unavailable |
|---|---|---|
| Single file upload | Nothing beyond a file input | — |
| Multiple file selection | HTML5 File API | One file at a time |
| Progress bar | XMLHttpRequest upload events | A "please wait" message |
| Drag and drop | HTML5 drag and drop, switched on with the DropZoneID property | The browse button, always present |
| Large-file handling | Nothing — the server reads the body incrementally | — |
| Client-side validation | JavaScript enabled | Server-side validation still applies |
With JavaScript disabled, ASP Uploader renders a standard file input so the form still works — you lose the queue, the progress bar and the client-side checks, but not the upload. Server-side validation is unaffected either way, which is why it is never optional. See validating file size and type.
IIS limits you may need to raise
These are IIS defaults rather than ASP Uploader requirements, but they will stop uploads long before your code sees them, so they belong on any requirements checklist:
| Setting | Default | Applies to |
|---|---|---|
maxRequestEntityAllowed | 200,000 bytes | Classic ASP request body size |
maxAllowedContentLength | 30,000,000 bytes | Request filtering body size |
Server.ScriptTimeout | 90 seconds | How long a page may run |
| Connection time-out | 120 seconds | The site's idle connection limit |
| App pool idle time-out | 20 minutes | Recycles a quiet pool mid-transfer |
These apply to ASP Uploader too: an upload arrives as a single request, so the ceilings above must be raised before you can accept large files. What the uploader avoids is the memory cost — it reads the body incrementally rather than buffering it. Uploading large files in Classic ASP explains each one.
Proxies, CDNs and load balancers
Anything sitting in front of IIS has its own request-size limit and its own timeout, and will
reject an oversized request before IIS ever sees it. Common ones: Cloudflare (100 MB per
request on Free and Pro plans), nginx (client_max_body_size, 1 MB by default) and
ARR. Chunked transfer keeps individual requests small enough that these rarely matter.
On a web farm, uploads work without sticky sessions because progress is measured in the browser rather than by polling the server.
Other platforms
ASP Uploader targets Classic ASP. The same upload engine is available for other stacks:
- AjaxUploader — ASP.NET Web Forms
- CoreUpload — ASP.NET Core
- Blazor Uploader — Blazor Server and WebAssembly
- PHP File Uploader — PHP
- MultipleUpload — plain JavaScript, any backend