Uploading/Downloading Large Files to WebDAV server
While IT Hit WebDAV server engine can process files of any size (up to 8,589,934,592 Gb) the hosting environment or your WebDAV client may not support large files processing.
Uploading to IIS/ASP.NET
When user uploads file to IIS, ASP.NET first uploads the file to the temporary upload directory. Only when the entire file is uploaded to server you can read its content from stream passed to IFolder.CreateResource, IResource.SaveFromStream or ILockNull.ConvertToResource methods. By default ASP.NET uploads files to ‘<Windows Install Folder>\Microsoft.NET\Framework\<.Net Framework Version>Temporary ASP.NET Files’ folder. You must make sure you have enough disk space to keep temporary files uploaded to server by users. To change this folder location, add the following code to your web.config file:
<configuration>
<system.web>
...
<compilation tempDirectory="temporary files directory" />
...
</system.web> </configuration>
Unlike IIS/ASP.NET HttpListener-based server does not create any temporary files when handling uploads.
IIS and ASP.NET does not support files upload larger than 2Gb. If you need to upload files larger than 2Gb to your WebDAV server you must develop HttpListener-based server. It does not have any limitations on file size.
To prevent canceling script execution when uploading a large file to IIS/ASP.NET you must extend script timeout value:
System.Web.HttpContext.Current.Server.ScriptTimeout = 1000; // time in seconds
Downloading
The WebDAV engine provides the means for downloading only a part of a file. The client application could send Range header to specify range of bytes to download. Download managers may use this engine feature to resume downloads or download single file using several threads at a time.
By default ASP.NET buffers content on server side before sending output. To eliminate keeping entire file content in memory before sending you must turn off buffering:
HttpContext.Current.Response.BufferOutput = false;
|