2013-02-21 2 views
-1

В настоящее время я использую следующий код, есть ли способ (например, быстрый) загрузить файл, вот мой полный код, он вызывается при каждой загрузке файла:Как загрузить файл на сервере в C# быстро, чем это

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("request_uri_string"); 
FileStream fileStream = new FileStream("path_to_my_file", 
           FileMode.Open, FileAccess.Read); 
Stream requestStream = request.GetRequestStream(); 
byte[] buffer = new Byte[checked((uint)Math.Min(4096, 
          (int)fileStream.Length))]; 
int bytesRead = 1; 
while (bytesRead != 0) 
{ 
    bytesRead = fileStream.Read(buffer, 0, buffer.Length); 
    if (bytesRead > 0) 
    { 
     requestStream.Write(buffer, 0, bytesRead); 
    } 
} 
requestStream.Close(); 
fileStream.Close(); 
String responseFromServer = null; 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
if (((HttpWebResponse)response).StatusDescription.Contains("OK")) 
{ 
    Encoding encode = System.Text.Encoding.GetEncoding(((HttpWebResponse)response).CharacterSet); 
    Stream dataStream = response.GetResponseStream(); 
    StreamReader reader = new StreamReader(dataStream, encode); 
    responseFromServer = reader.ReadToEnd(); 
    reader.Close(); 
    dataStream.Close(); 
} 
response.Close(); 
+1

этот код не компилируется ('close' вместо' close'), который предполагает, что это не ваш реальный код ... –

+0

Определить "Быстрее". Меньше строк или лучше использовать пропускную способность соединения? – quetzalcoatl

+0

@jon, это написано вручную. Вот почему написано закрыто, а не Close по ошибке, пожалуйста, помогите – kapill

ответ

4

Вероятно, не быстрее, но проще:

WebClient client = new WebClient(); 
//client.Credentials = new NetworkCredential("username", "password"); 
client.UploadFile(uriString,fileName); 
Смежные вопросы