There's a tremendous amount of confusing information on the internet surrounding configuring SharePoint to properly allow large uploads. Much of the confusion is due to differences in SharePoint versions (2007 ("12"), 2010 ("14") and WSS / Foundation) along with changes Microsoft made to the underlying OS and IIS.
For our sanity - and everyone else's - here's what we've found is truly the only full proper way to make this work consistently across Document Libraries, Lists and everything in between.
The following example would be to allow 500+MB uploads, and you would need to adjust the numbers to match your needs. Keep in mind the numbers are (in true Microsoft fashion) in MB in some places, KB in others, and bytes in still others!
We've also made these steps a fully GUI based affair, as many admins are still uncomfortable about hacking around in config files manually.
Note: This process applies to SharePoint 2010 or greater on Windows 2008 R2 or newer. On Windows 2008 (non-R2) manual edits to web.config would be required using the same settings, or download the Configuration Editor as part of the IIS Administration Pack.
- In Central Administration, under Application Management/Manage Web Applications find the web application to update and select it. Then from the ribbon choose General Settings.
- Update the Maximum Upload Size to the desired size – i.e. 512 MB and click OK
Repeat the following steps on EACH Web Front-end Server and for each IIS site representing each SharePoint zone:
- In IIS Manager navigate to the Sites node and choose the appropriate site representing the chosen SharePoint Web Application
- Click Advanced Settings in the Action Pane. Under Connection Limits increase the Connection Time-out to at least 300 seconds and click OK
- In the middle pane double click on Configuration Editor
- Under Section, choose system.webserver/security/requestFiltering
- Expand requestLimits and change the maxAllowedContentLength entry to a value of at least 536870912 (this is in bytes). Click out of the entry box, then choose Apply in the action pane
- Under Section choose system.web/httpruntime
- Modify the entry maxRequestLength to a value of at least 524288 (this time it's in KB!) and the executionTimeout value to 3600. Click out of the entry box, then choose Apply in the action pane
- Open Command Prompt As Administrator and execute
- Go forth, and upload!
All of these steps are required to fully and properly support large uploads across libraries and lists.