如何将文件上传到sharepoint文档库

时间:2013-04-10 05:05:00

标签: c# sharepoint-2010

任何人都可以建议我在如何将文件上传到共享点文档库中创建一个银光沙箱解决方案。我是C#开发人员。

2 个答案:

答案 0 :(得分:2)

您可以参考以下代码:

String UploadFile = @"C:\YourFile.txt";
String sharePointWebAdd = "http://yoursite.com/sites/Research/";
String docLib = "Shared Documents";

using (SPSite oSite = new SPSite(sharePointWebAdd))
{
    using (SPWeb oWeb = oSite.OpenWeb())
    {
        if (!System.IO.File.Exists(UploadFile))
            throw new FileNotFoundException("File not found.", UploadFile);                    

        SPFolder myLibrary = oWeb.Folders[docLib];

        // Prepare to upload
        Boolean replaceExistingFiles = true;
        String fileName = System.IO.Path.GetFileName(UploadFile);
        FileStream fileStream = File.OpenRead(UploadFile);

        // Upload document
        SPFile spfile = myLibrary.Files.Add(fileName, fileStream, replaceExistingFiles);

        // Commit 
        myLibrary.Update();
    }
}

另请参阅:

http://msdn.microsoft.com/en-us/library/lists.lists.aspx

答案 1 :(得分:2)

这里有点难以描述。但我假设您将从文件中获得FileInfo。对于银灯应用,您需要添加两个客户端对象模型的参考dll。

Microsoft.SharePoint.Client.Silverlight.dll.
Microsoft.SharePoint.Client.Silverlight.Runtime.dll.

您可以在C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin目录路径中找到上面的dll。

 private ClientContext context;
 private Web web;

 private void UploadFile(FileInfo fileToUpload, string libraryTitle, string subfolderPath, bool fileOverwrite)
    {
        try
        {
            //Treatment of files and loading it to byte array []
            Stream str = null;
            Int32 strLen, strRead;

            str = fileToUpload.OpenRead();
            strLen = Convert.ToInt32(str.Length);

            byte[] strArr = new byte[strLen];
            strRead = str.Read(strArr, 0, strLen);

            using (context = new ClientContext("http://localhost/"))
           {
            web = context.Web;

            //Defining where to find the files to tape record the library go
            List destinationList = web.Lists.GetByTitle(libraryTitle);

            //Creating a file
            var fciFileToUpload = new FileCreationInformation();
            fciFileToUpload.Content = strArr;

            //Must determine whether to upload files directly to the library or whether to upload the files to sub directories and stack your way to the file
            string uploadLocation = fileToUpload.Name;

            if (!string.IsNullOrEmpty(subfolderPath))
            {
                uploadLocation = string.Format("{0}/{1}", subfolderPath, uploadLocation);
            }
            uploadLocation = string.Format("{0}/{1}/{2}", webUrl, libraryTitle, uploadLocation);

            //Sets the path to the file where you want to upload and subor whether to overwrite the file or not
            fciFileToUpload.Url = uploadLocation;
            fciFileToUpload.Overwrite = fileOverwrite;

            clFileToUpload = destinationList.RootFolder.Files.Add(fciFileToUpload);

            //load web,list.
            context.Load(web);
            context.Load(destinationList, list => list.ItemCount);
            context.Load(clFileToUpload);
            context.Load(clFileToUpload.ListItemAllFields);
            context.ExecuteQueryAsync(OnLoadingSucceeded, OnLoadingFailed);
           }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
            unhideComponents();
        }
    }
    private void OnLoadingSucceeded(Object sender, ClientRequestSucceededEventArgs args)
    {
        Dispatcher.BeginInvoke(fileUploaded); // fileUploaded is function
    }

    private void OnLoadingFailed(object sender, ClientRequestFailedEventArgs args)
    {
        Dispatcher.BeginInvoke(fileNotUploaded); //fileNotUploaded is function
    }