Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ UploadFileAsync() [3/3]

void System.Net.WebClient.UploadFileAsync ( Uri address,
string? method,
string fileName,
object? userToken )
inline

Definition at line 1719 of file WebClient.cs.

1720 {
1721 ArgumentNullException.ThrowIfNull(address, "address");
1722 ArgumentNullException.ThrowIfNull(fileName, "fileName");
1723 if (method == null)
1724 {
1725 method = MapToDefaultMethod(address);
1726 }
1727 FileStream fs = null;
1728 AsyncOperation asyncOp = StartAsyncOperation(userToken);
1729 try
1730 {
1731 _method = method;
1732 byte[] formHeaderBytes = null;
1733 byte[] boundaryBytes = null;
1734 byte[] buffer = null;
1735 Uri uri = GetUri(address);
1736 bool needsHeaderAndBoundary = uri.Scheme != Uri.UriSchemeFile;
1737 OpenFileInternal(needsHeaderAndBoundary, fileName, out fs, out buffer, ref formHeaderBytes, ref boundaryBytes);
1738 UploadBitsAsync(_webRequest = GetWebRequest(uri), fs, buffer, 0, formHeaderBytes, boundaryBytes, asyncOp, delegate(byte[] result, Exception error, AsyncOperation uploadAsyncOp)
1739 {
1740 InvokeOperationCompleted(asyncOp, _uploadFileOperationCompleted, new UploadFileCompletedEventArgs(result, error, _canceled, uploadAsyncOp.UserSuppliedState));
1741 });
1742 }
1743 catch (Exception ex) when (!(ex is OutOfMemoryException))
1744 {
1745 fs?.Close();
1746 UploadFileCompletedEventArgs eventArgs = new UploadFileCompletedEventArgs(null, GetExceptionToPropagate(ex), _canceled, asyncOp.UserSuppliedState);
1748 }
1749 }
virtual void Close()
Definition Stream.cs:644
Uri GetUri(string address)
Definition WebClient.cs:990
virtual WebRequest GetWebRequest(Uri address)
Definition WebClient.cs:428
WebRequest _webRequest
Definition WebClient.cs:76
SendOrPostCallback _uploadFileOperationCompleted
Definition WebClient.cs:112
void OpenFileInternal(bool needsHeaderAndBoundary, string fileName, out FileStream fs, out byte[] buffer, ref byte[] formHeaderBytes, ref byte[] boundaryBytes)
Definition WebClient.cs:691
static Exception GetExceptionToPropagate(Exception e)
AsyncOperation StartAsyncOperation(object userToken)
Definition WebClient.cs:366
string MapToDefaultMethod(Uri address)
void InvokeOperationCompleted(AsyncOperation asyncOp, SendOrPostCallback callback, AsyncCompletedEventArgs eventArgs)
async void UploadBitsAsync(WebRequest request, Stream readStream, byte[] buffer, int chunkSize, byte[] header, byte[] footer, AsyncOperation asyncOp, Action< byte[], Exception, AsyncOperation > completionDelegate)

References System.Net.WebClient._canceled, System.Net.WebClient._method, System.Net.WebClient._uploadFileOperationCompleted, System.Net.WebClient._webRequest, System.buffer, System.IO.Stream.Close(), System.Net.WebClient.GetExceptionToPropagate(), System.Net.WebClient.GetUri(), System.Net.WebClient.GetWebRequest(), System.Net.WebClient.InvokeOperationCompleted(), System.Net.WebClient.MapToDefaultMethod(), System.Net.WebClient.OpenFileInternal(), System.Net.WebClient.StartAsyncOperation(), System.ArgumentNullException.ThrowIfNull(), System.Net.WebClient.UploadBitsAsync(), System.Uri.UriSchemeFile, and System.ComponentModel.AsyncOperation.UserSuppliedState.