-1

目前我正在使用以下代码,有没有更好(意味着快速)上传文件的方法,这是我的完整代码,在每次文件上传时都会调用它:

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();
4

1 回答 1

4

可能不会更快,但更容易:

WebClient client = new WebClient();
//client.Credentials = new NetworkCredential("username", "password");
client.UploadFile(uriString,fileName);
于 2013-02-21T13:38:21.797 回答