Leadtools.SharePoint.Client Namespace > SharePointClient Class : UploadStreamAsync Method |
http://MySite
or http://MySiteCollection/MySite
. This value cannot be null (Nothing in Visual Basic).
public void UploadStreamAsync( Stream sourceStream, Uri siteUri, string destinationPath, object userState )
'Declaration Public Sub UploadStreamAsync( _ ByVal sourceStream As Stream, _ ByVal siteUri As Uri, _ ByVal destinationPath As String, _ ByVal userState As Object _ )
'Usage Dim instance As SharePointClient Dim sourceStream As Stream Dim siteUri As Uri Dim destinationPath As String Dim userState As Object instance.UploadStreamAsync(sourceStream, siteUri, destinationPath, userState)
public void UploadStreamAsync( Stream sourceStream, Uri siteUri, string destinationPath, object userState )
function Leadtools.SharePoint.Client.SharePointClient.UploadStreamAsync( sourceStream , siteUri , destinationPath , userState )
public: void UploadStreamAsync( Stream^ sourceStream, Uri^ siteUri, String^ destinationPath, Object^ userState )
http://MySite
or http://MySiteCollection/MySite
. This value cannot be null (Nothing in Visual Basic).This method will return control immediately to your program and the Leadtools.SharePoint.Client.SharePointClient.UploadCompleted will occur when the upload operation is completed (successfully or if an error occurred).
This method will upload the content of sourceStream to SharePoint server. Note that the stream must stay alive will Leadtools.SharePoint.Client.SharePointClient.UploadCompleted occur. The location and name of the destination item in the server is determined as follows:
DestinationFileFullUrl = siteUri + destinationPath
For example, assume the SharePoint server contains a folder with the following name:
http://site/Shared Documents/
And you want the uploaded item with the name File.ext
into this folder. You can perform this using this code:
Uri siteUri = new Uri(@"http://site"); string destinationPath = @"Shared Documents/File.ext"; sharePointClientObject.UploadFile(sourceFileName, siteUri, destinationPath);
You can use the .NET System.IO.Path and System.UriBuilder classes to build the path and URI of the items. No that destinationPath is allowed to contain slashes (/) as in HTTP URI's or forward slashes (\) as in Windows paths or a mix of both.
To upload a stream synchronously, use UploadStream.
To upload a disk file to the server, use UploadFile or UploadFileAsync.
To down an item from SharePoint, use DownloadFile, DownloadFileAsync, GetDownloadStream or GetDownloadStreamAsync.
Private Shared Sub SharePointClientUploadStreamAsyncExample() Dim sourceFileName As String = "C:\Users\Public\Documents\LEADTOOLS Images\Ocr1.tif" ' Replace SHAREPOINT_SITE_URI with a valid URL to a SharePoint site, for example ' http://SiteCollection/MySite Dim siteUri As New Uri(SHAREPOINT_SITE_URI) ' Replace SHAREPOINT_FOLDER_NAME with a valid folder on the site above, for example ' "Documents" or "Documents\Sub Documents" Dim folderName As String = SHAREPOINT_FOLDER_NAME ' Get a stream to the file Using stream As FileStream = File.OpenRead(sourceFileName) Dim spClient As New SharePointClient() spClient.OverwriteExistingFiles = True ' Optional: Set the credentials: spClient.Credentials = New NetworkCredential(USER_NAME, PASSWORD, DOMAIN) ' If this is a console application demo, we might exit the program before the operation completes, ' so use a wait handle to not exit this method till the opreation completes Dim wait As New AutoResetEvent(False) ' Build the upload document full path (folder + file name) Dim destinationPath As String = Path.Combine(folderName, Path.GetFileName(sourceFileName)) ' Upload the document AddHandler spClient.UploadCompleted, AddressOf UploadStreamAsyncCompleted spClient.UploadStreamAsync(stream, siteUri, destinationPath, wait) ' Wait till the operation completes Console.WriteLine("Waiting to upload to finish") wait.WaitOne() wait.Close() Console.WriteLine("Upload completed") End Using End Sub Private Shared Sub UploadStreamAsyncCompleted(ByVal sender As Object, ByVal e As SharePointClientUploadCompletedEventArgs) ' Remove our handler Dim spClient As SharePointClient = CType(sender, SharePointClient) RemoveHandler spClient.UploadCompleted, AddressOf UploadStreamAsyncCompleted If IsNothing(e.Error) AndAlso Not e.Cancelled Then ' All OK, the file is in SharePoint Else ' Some error occured If Not IsNothing(e.Error) Then Console.WriteLine(e.Error.Message) Else Console.WriteLine("User cancelled") End If End If ' Tell whoever is listening that we are done Dim wait As EventWaitHandle = CType(e.UserState, EventWaitHandle) wait.Set() End Sub
private static void SharePointClientUploadStreamAsyncExample() { string sourceFileName = @"C:\Users\Public\Documents\LEADTOOLS Images\Ocr1.tif"; // Replace SHAREPOINT_SITE_URI with a valid URL to a SharePoint site, for example // http://SiteCollection/MySite Uri siteUri = new Uri(SHAREPOINT_SITE_URI); // Replace SHAREPOINT_FOLDER_NAME with a valid folder on the site above, for example // "Documents" or "Documents\Sub Documents" string folderName = SHAREPOINT_FOLDER_NAME; // Get a stream to the file using (FileStream stream = File.OpenRead(sourceFileName)) { SharePointClient spClient = new SharePointClient(); spClient.OverwriteExistingFiles = true; // Optional: Set the credentials: spClient.Credentials = new NetworkCredential(USER_NAME, PASSWORD, DOMAIN); // If this is a console application demo, we might exit the program before the operation completes, // so use a wait handle to not exit this method till the opreation completes AutoResetEvent wait = new AutoResetEvent(false); // Build the upload document full path (folder + file name) string destinationPath = Path.Combine(folderName, Path.GetFileName(sourceFileName)); // Upload the document spClient.UploadCompleted += new EventHandler<SharePointClientUploadCompletedEventArgs>(UploadStreamAsyncCompleted); spClient.UploadStreamAsync(stream, siteUri, destinationPath, wait); // Wait till the operation completes Console.WriteLine("Waiting to upload to finish"); wait.WaitOne(); wait.Close(); Console.WriteLine("Upload completed"); } } private static void UploadStreamAsyncCompleted(object sender, SharePointClientUploadCompletedEventArgs e) { // Remove our handler SharePointClient spClient = sender as SharePointClient; spClient.UploadCompleted -= new EventHandler<SharePointClientUploadCompletedEventArgs>(UploadStreamAsyncCompleted); if (e.Error == null && !e.Cancelled) { // All OK, the file is in SharePoint } else { // Some error occured if (e.Error != null) Console.WriteLine(e.Error.Message); else Console.WriteLine("User cancelled"); } // Tell whoever is listening that we are done EventWaitHandle wait = e.UserState as EventWaitHandle; wait.Set(); }
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2