---
title: "Upload Modes Best Practices"
canonical: https://www.aurigma.com/docs/us8/upload-modes-best-practices.htm
product: "Upload Suite 8"
---

# Upload Modes Best Practices
 
There are number of upload modes in ActiveX/Java Uploader. This topic provides the best practices along with number of the most common configurations, that allows you to configure uploader efficiently. //Explain that this topic is about efficient upload, so no converters are considered. The following rules are the key practices in order to make upload process more efficient:

- Use chunks for large files.
- Use concurrent upload for significant increase of upload speed.
- Use package upload to send images.

For more information about uploader modes, including packages, chunks, and parallel upload, see the Sending All Files at Once or in Several Parts topic.

Also this topic provides configurations for the most common upload tasks:

ASP.NET/PHP | ASP.NET/PHP | ASP.NET/PHP | ASP.NET/PHP | ASP.NET/PHP |     |  pictures |  documents |  large files |  mixed files |  |  usual upload |  5 files per package |  10 files per package |  1 file per package |  3 files per package |
 |  10Mb chunks |  10Mb chunks |
 |  code snippet |  code snippet |  code snippet |  code snippet |
 |  fast upload |  5 files per package |  10 files per package |  1 file per package |  3 files per package |
 |  10Mb chunks |  10Mb chunks |
 |  4 parallel connections |  4 parallel connections |  4 parallel connections |  4 parallel connections |
 |  code snippet |  code snippet |  code snippet |  code snippet |
 |  fail-safe upload |   |   |   |   |
   Other platforms | Other platforms | Other platforms | Other platforms | Other platforms |     |  pictures |  documents |  large files |  mixed files |  |  usual upload |  5 files per package |  10 files per package |  1 file per package |  3 files per package |
 |  code snippet |  code snippet |  code snippet |  code snippet |
 |  fast upload |  5 files per package |  10 files per package |  1 file per package |  3 files per package |
 |  4 parallel connections |  4 parallel connections |  4 parallel connections |  4 parallel connections |
 |  code snippet |  code snippet |  code snippet |  code snippet |
 |  fail-safe upload |   |   |   |   |
 
## Upload on ASP.NET or PHP
 
### Usual Upload

#### Usual Upload of Pictures
 ```aspx-cs
<aur:Uploader ID="Uploader1" runat="server" >
    <UploadSettings FilesPerPackage="5" />
</aur:Uploader>
``` ```
$uploader = new Uploader("Uploader1");
$uploader->getUploadSettings()->setFilesPerPackage(5);
``` 
#### Usual Upload of Documents
 ```aspx-cs
<aur:Uploader ID="Uploader1" runat="server" >
    <UploadSettings FilesPerPackage="10" />
</aur:Uploader>
``` ```
$uploader = new Uploader("Uploader1");
$uploader->getUploadSettings()->setFilesPerPackage(10);
``` 
#### Usual Upload of Large Files
 ```aspx-cs
<aur:Uploader ID="Uploader1" runat="server" >
    <UploadSettings FilesPerPackage="1" ChunkSize="10485760" />
</aur:Uploader>
``` ```
$uploader = new Uploader("Uploader1");
$uploader->getUploadSettings()->setFilesPerPackage(1);
$uploader->getUploadSettings()->setChunkSize(10485760);
``` 
#### Usual Upload of Mixed Files
 ```aspx-cs
<aur:Uploader ID="Uploader1" runat="server" >
    <UploadSettings FilesPerPackage="3" ChunkSize="10485760" />
</aur:Uploader>
``` ```
$uploader = new Uploader("Uploader1");
$uploader->getUploadSettings()->setFilesPerPackage(3);
$uploader->getUploadSettings()->setChunkSize(10485760);
``` 
### Fast Upload
 
The main idea in fast upload is enabling multi-threaded upload. This trick can yield up to 50% increase of upload speed if a channel between a client computer and a web server is fast enough. In multi-threaded upload we divide data into several pieces and upload them simultaneously, each data piece within a separate HTTP request. To enable this feature set the [MaxConnectionCount](https://www.aurigma.com/docs/us8/JA_P_Aurigma_ImageUploader_UploadSettings_MaxConnectionCount.htm.md) property to a positive value (we found that the best choice would be 3-4 connections). Also you should turn packages and/or chunks mode on (the FilesPerPackage[FilesPerPackage (ASP.NET)](https://www.aurigma.com/docs/us8/JA_P_Aurigma_ImageUploader_UploadSettings_FilesPerPackage.htm.md)[FilesPerPackage (PHP)](https://www.aurigma.com/docs/us8/JA_P_P_UploadSettings_FilesPerPackage.htm.md)[filesPerPackage (JavaScript)](https://www.aurigma.com/docs/us8/JA_P_J_$au_uploadSettings_filesPerPackage.htm.md) property and/or the ChunkSize[ChunkSize (ASP.NET)](https://www.aurigma.com/docs/us8/JA_P_Aurigma_ImageUploader_UploadSettings_ChunkSize.htm.md)[ChunkSize (PHP)](https://www.aurigma.com/docs/us8/JA_P_P_UploadSettings_ChunkSize.htm.md)[chunkSize (JavaScript)](https://www.aurigma.com/docs/us8/JA_P_J_$au_uploadSettings_chunkSize.htm.md) property has a positive value). For more information about multi-threaded upload see the [Enabling Multi-threaded Upload via ActiveX/Java Uploader in ASP.NET](https://www.aurigma.com/docs/us8/enabling-multi-threaded-upload-aspnet.htm.md) and [Enabling Multi-threaded Upload via ActiveX/Java Uploader in PHP](https://www.aurigma.com/docs/us8/enabling-multi-threaded-upload-php.htm.md) topics, and the [Sending All Files at Once or in Several Parts in ActiveX/Java Uploader](https://www.aurigma.com/docs/us8/sending-all-files-at-once-or-in-several-parts.htm.md) topic will help you with packages and chunks.
 
**Note** 
It is a recommended to hide numbers in **Upload dialog** configuration when multi-threaded upload is turned on and **FilesPerPackage** is more than `1`.
 
#### Fast Upload of Pictures
 ```aspx-cs
<aur:Uploader ID="Uploader1" runat="server" >
    <UploadSettings MaxConnectionCount="4" FilesPerPackage="5" />
    <UploadProgressDialog PreparingText = "" InfoText = "" />
</aur:Uploader>
``` ```
$uploader = new Uploader("Uploader1");
$uploader->getUploadSettings()->setMaxConnectionCount(4);
$uploader->getUploadSettings()->setFilesPerPackage(5);
$uploadProgressDialog = $uploader->getUploadProgressDialog();
$uploadProgressDialog->setPreparingText("");
$uploadProgressDialog->setInfoText("");
``` 
#### Fast Upload of Documents
 ```aspx-cs
<aur:Uploader ID="Uploader1" runat="server" >
    <UploadSettings MaxConnectionCount="4" FilesPerPackage="10" />
    <UploadProgressDialog PreparingText = "" InfoText = "" />
</aur:Uploader>
``` ```
$uploader = new Uploader("Uploader1");
$uploader->getUploadSettings()->setMaxConnectionCount(4);
$uploader->getUploadSettings()->setFilesPerPackage(10);
$uploadProgressDialog = $uploader->getUploadProgressDialog();
$uploadProgressDialog->setPreparingText("");
$uploadProgressDialog->setInfoText("");
``` 
#### Fast Upload of Large Files
 ```aspx-cs
<aur:Uploader ID="Uploader1" runat="server" >
    <UploadSettings MaxConnectionCount="4" FilesPerPackage="1" ChunkSize="10485760" />
</aur:Uploader>
``` ```
$uploader = new Uploader("Uploader1");
$uploader->getUploadSettings()->setMaxConnectionCount(4);
$uploader->getUploadSettings()->setFilesPerPackage(1);
$uploader->getUploadSettings()->setChunkSize(10485760);
``` 
#### Fast Upload of Mixed Files
 ```aspx-cs
<aur:Uploader ID="Uploader1" runat="server" >
    <UploadSettings MaxConnectionCount="4" FilesPerPackage="3" ChunkSize="10485760" />
    <UploadProgressDialog PreparingText = "" InfoText = "" />
</aur:Uploader>
``` ```
$uploader = new Uploader("Uploader1");
$uploader->getUploadSettings()->setMaxConnectionCount(4);
$uploader->getUploadSettings()->setFilesPerPackage(3);
$uploader->getUploadSettings()->setChunkSize(10485760);
$uploadProgressDialog = $uploader->getUploadProgressDialog();
$uploadProgressDialog->setPreparingText("");
$uploadProgressDialog->setInfoText("");
``` 
### Fail-safe Document Upload
 
AutoRecovery\* properties. Not sure what is the best upload mode here. May be we should use zip converter and send one archive file using chunks?
 ```aspx-cs
<aur:Uploader ID="Uploader1" runat="server" >
    <UploadSettings MaxConnectionCount="4" FilesPerPackage="5" />
    <UploadProgressDialog PreparingText = "" InfoText = "" />
</aur:Uploader>
``` ```
$uploader = new Uploader("Uploader1");
$uploader->getUploadSettings()->setMaxConnectionCount(4);
$uploader->getUploadSettings()->setFilesPerPackage(5);
$uploadProgressDialog = $uploader->getUploadProgressDialog();
$uploadProgressDialog->setPreparingText("");
$uploadProgressDialog->setInfoText("");
``` ```
var u = $au.uploader({
    id: 'Uploader1',
    uploadSettings: {
            maxConnectionCount: 4,
            filesPerPackage: 5
    },
    uploadProgressDialog: { preparingText: "", infoText: ""}
});
```

## Upload on Other Platforms
 
(no chunks)
 
### Usual Upload

#### Usual Upload of Pictures
 ```
var u = $au.uploader({
    id: 'Uploader1',
    uploadSettings: {
            filesPerPackage: 5
    }
});
``` 
#### Usual Upload of Documents
 ```
var u = $au.uploader({
    id: 'Uploader1',
    uploadSettings: {
            filesPerPackage: 10
    }
});
``` 
#### Usual Upload of Large Files
 ```
var u = $au.uploader({
    id: 'Uploader1',
    uploadSettings: {
            filesPerPackage: 1
    }
});
``` 
#### Usual Upload of Mixed Files
 ```
var u = $au.uploader({
    id: 'Uploader1',
    uploadSettings: {
            filesPerPackage: 3
    }
});
``` 
### Fast Upload
 
The main idea in fast upload is enabling multi-threaded upload. This trick can yield up to 50% increase of upload speed if a channel between a client computer and a web server is fast enough. In multi-threaded upload we divide data into several pieces and upload them simultaneously, each data piece within a separate HTTP request. To enable this feature set the **MaxConnectionCount** property to a positive value (we found that the best choice would be 3-4 connections). Also you should turn packages and/or chunks mode on (the **FilesPerPackage** property and/or the **ChunkSize** property has a positive value). For more information about multi-threaded upload see the [Enabling Multi-threaded Upload via ActiveX/Java Uploader in Other Platforms](https://www.aurigma.com/docs/us8/enabling-multi-threaded-upload-other-platforms.htm.md) topic, and the [Sending All Files at Once or in Several Parts in ActiveX/Java Uploader](https://www.aurigma.com/docs/us8/sending-all-files-at-once-or-in-several-parts.htm.md) topic will help you with packages and chunks.
 
**Note** 
It is a recommended to hide numbers in **Upload dialog** configuration when multi-threaded upload is turned on and **FilesPerPackage** is more than `1`.
 
#### Fast Upload of Pictures
 ```
var u = $au.uploader({
    id: 'Uploader1',
    uploadSettings: {
            maxConnectionCount: 4,
            filesPerPackage: 5
    },
    uploadProgressDialog: { preparingText: "", infoText: ""}
});
``` 
#### Fast Upload of Documents
 ```
var u = $au.uploader({
    id: 'Uploader1',
    uploadSettings: {
            maxConnectionCount: 4,
            filesPerPackage: 10
    },
    uploadProgressDialog: { preparingText: "", infoText: ""}
});
``` 
#### Fast Upload of Large Files
 ```
var u = $au.uploader({
    id: 'Uploader1',
    uploadSettings: {
            maxConnectionCount: 4,
            filesPerPackage: 1
    }
});
``` 
#### Fast Upload of Mixed Files
 ```
var u = $au.uploader({
    id: 'Uploader1',
    uploadSettings: {
            maxConnectionCount: 4,
            filesPerPackage: 3
    },
    uploadProgressDialog: { preparingText: "", infoText: ""}
});
```

## See Also
 
### Manual
 
- [Saving Uploaded Files in ActiveX/Java Uploader ASP.NET](https://www.aurigma.com/docs/us8/saving-uploaded-files-in-aspnet-iu.htm.md)
- [Saving Uploaded Files in ActiveX/Java Uploader PHP](https://www.aurigma.com/docs/us8/saving-uploaded-files-in-php-iu.htm.md)
- [Saving Uploaded Files in ActiveX/Java Uploader Other Platforms](https://www.aurigma.com/docs/us8/saving-uploaded-files-in-other-platforms-iu.htm.md)
- [Enabling Multi-threaded Upload via ActiveX/Java Uploader in ASP.NET](https://www.aurigma.com/docs/us8/enabling-multi-threaded-upload-aspnet.htm.md)
- [Enabling Multi-threaded Upload via ActiveX/Java Uploader in PHP](https://www.aurigma.com/docs/us8/enabling-multi-threaded-upload-php.htm.md)
- [Enabling Multi-threaded Upload via ActiveX/Java Uploader in Other Platforms](https://www.aurigma.com/docs/us8/enabling-multi-threaded-upload-other-platforms.htm.md)
- [Sending All Files at Once or in Several Parts in ActiveX/Java Uploader](https://www.aurigma.com/docs/us8/sending-all-files-at-once-or-in-several-parts.htm.md)
- [Configuring Fail-safe Upload](https://www.aurigma.com/docs/us8/configuring-fail-safe-upload.htm.md)

### Reference
 
- MaxConnectionCount Property[MaxConnectionCount (ASP.NET)](https://www.aurigma.com/docs/us8/JA_P_Aurigma_ImageUploader_UploadSettings_MaxConnectionCount.htm.md)[MaxConnectionCount (PHP)](https://www.aurigma.com/docs/us8/JA_P_P_UploadSettings_MaxConnectionCount.htm.md)[maxConnectionCount (JavaScript)](https://www.aurigma.com/docs/us8/JA_P_J_$au_uploadSettings_maxConnectionCount.htm.md)
- FilesPerPackage Property[FilesPerPackage (ASP.NET)](https://www.aurigma.com/docs/us8/JA_P_Aurigma_ImageUploader_UploadSettings_FilesPerPackage.htm.md)[FilesPerPackage (PHP)](https://www.aurigma.com/docs/us8/JA_P_P_UploadSettings_FilesPerPackage.htm.md)[filesPerPackage (JavaScript)](https://www.aurigma.com/docs/us8/JA_P_J_$au_uploadSettings_filesPerPackage.htm.md)
- ChunkSize Property[ChunkSize (ASP.NET)](https://www.aurigma.com/docs/us8/JA_P_Aurigma_ImageUploader_UploadSettings_ChunkSize.htm.md)[ChunkSize (PHP)](https://www.aurigma.com/docs/us8/JA_P_P_UploadSettings_ChunkSize.htm.md)[chunkSize (JavaScript)](https://www.aurigma.com/docs/us8/JA_P_J_$au_uploadSettings_chunkSize.htm.md)
