Есть много примеров, но попробуйте этот, он может работать для вас.
private byte[] GetFileByteArray(string filename)
{
FileStream oFileStream = new FileStream(filename, FileMode.Open, FileAccess.Read);
// Create a byte array of file size.
byte[] FileByteArrayData = new byte[oFileStream.Length];
//Read file in bytes from stream into the byte array
oFileStream.Read(FileByteArrayData, 0, System.Convert.ToInt32(oFileStream.Length));
//Close the File Stream
oFileStream.Close();
return FileByteArrayData; //return the byte data
}
// Этот метод возвращает массив байтов файла, затем вам нужно вызвать метод UploadVideoFile.
public string UploadVideoFile(string URL, byte[] VideoFileData)
{
string Response = null;
HttpWebRequest WebReq = null;
HttpWebResponse WebRes = null;
StreamReader StreamResponseReader = null;
Stream requestStream = null;
try
{
WebReq = (HttpWebRequest)WebRequest.Create(URL);
WebReq.Method = "POST";
WebReq.Accept = "*/*";
WebReq.Timeout = 50000;
WebReq.KeepAlive = false;
WebReq.AllowAutoRedirect = false;
WebReq.AllowWriteStreamBuffering = true;
WebReq.ContentType = "binary/octet-stream";
WebReq.ContentLength = VideoFileData.Length;
requestStream = WebReq.GetRequestStream();
requestStream.Write(VideoFileData, 0, VideoFileData.Length);
requestStream.Close();
WebRes = (HttpWebResponse)WebReq.GetResponse();
StreamResponseReader = new StreamReader(WebRes.GetResponseStream(), Encoding.UTF8);
Response = StreamResponseReader.ReadToEnd();
}
catch
{
throw;
}
finally
{
if (WebReq != null)
{
WebReq.Abort();
WebReq = null;
}
if (WebRes != null)
{
WebRes.Close();
WebRes = null;
}
if (StreamResponseReader != null)
{
StreamResponseReader.Close();
StreamResponseReader = null;
}
if (requestStream != null)
{
requestStream = null;
}
}
return Response;
}
Используйте эту ссылку для справки: https://social.msdn.microsoft.com/Forums/en-US/9be81392-71b6-4424-aed4-0627f041ba2e/how-to-upload-a-image-file-via-http-request-using-cnet?forum=vssmartdevicesvbcs