This article was previously published under Q329781
This article has been archived. It is offered "as is" and will no longer be updated.
When you use the HTTP File Upload feature to upload multi-megabyte files, the upload operation may take a very long time to complete.
Note This issue is documented in Request For Comment (RFC) 1867, "Form-based File Upload in HTML."
This issue occurs because the default Winsock Send buffer is 8 kilobytes (KB), and therefore Internet Explorer supplies the data in 8 KB chunks. On an average network, this equals approximately 80 KB per second (KBps), regardless of network bandwidth.
For additional information, click the article number below to view the article in the Microsoft Knowledge Base:
214397 INFO: Design Issues - Sending Small Data Segments Over TCP w/Winsock
To resolve this issue, configure Internet Explorer to increase the Send buffer when communicating with Winsock. This increases network performance when you use the HTTP File Upload method. To do this, follow these steps.
Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 How to back up and restore the registry in Windows
Buffers sizes larger than those specified here are not supported by Microsoft.
Quit Registry Editor.
Make sure that you test each value, starting with a 16-KB buffer. When the upload performance becomes acceptable, select the corresponding buffer value.
This behavior is by design.
When you use the procedure described in the "Resolution" section of this article, any program that uses the WININETAPI HTTPSendRequest function (as documented on the following Microsoft Developer Network (MSDN) Web site) will allocate and request a Winsock Send buffer, as defined by the registry key.
For additional information about the HTTPSendRequest function, visit the following MSDN Web site: