private void StartUpload(FileInfo file) { _uploadedFile = file; _fileStream = _uploadedFile.OpenRead(); _dataLength = _fileStream.Length; var pathofAttachment = AttachmentPath.Split('/').LastOrDefault(); var dataToSend = _dataLength - _dataSent; var isLastChunk = dataToSend <= ChunkSize; var isFirstChunk = _dataSent == 0; var httpHandlerUrlBuilder = new UriBuilder(string.Format("{0}/FileUpload.ashx", _baseUri)); httpHandlerUrlBuilder.Query = string.Format("{4}file={0}&offset={1}&last={2}&first={3}&Folder={5}", pathofAttachment, _dataSent, isLastChunk, isFirstChunk, string.IsNullOrEmpty(httpHandlerUrlBuilder.Query) ? "" : httpHandlerUrlBuilder.Query.Remove(0, 1) + "&", FolderPath); var webRequest = (HttpWebRequest)WebRequest.Create(httpHandlerUrlBuilder.Uri); webRequest.Method = "POST"; webRequest.BeginGetRequestStream(WriteToStreamCallback, webRequest); }