【问题标题】:Get sharepoint images from URL从 URL 获取共享点图像
【发布时间】:2021-08-22 08:28:18
【问题描述】:

我正在尝试从 URL 获取图像作为 BitmapImage 但不知道如何。该 URL 位于 Sharepoint 列表中,我已经像这样检索到:

public async Task<Microsoft.SharePoint.Client.ListItemCollection> getListContent(string listName)
        {
            Microsoft.SharePoint.Client.ListItemCollection items;

            string userName = Settings.Default.User;
            string password = Settings.Default.Pass;
            string siteUrl = Settings.Default.URL;

            using (ClientContext clientContext = new ClientContext(siteUrl))
            {
                SecureString securePassword = new SecureString();
                foreach (char c in password.ToCharArray())
                {
                    securePassword.AppendChar(c);
                }

                clientContext.AuthenticationMode = ClientAuthenticationMode.Default;
                clientContext.Credentials = new SharePointOnlineCredentials(userName, securePassword);

                await clientContext.ExecuteQueryAsync();

                Microsoft.SharePoint.Client.List TargetList = clientContext.Web.Lists.GetByTitle(listName);
                CamlQuery query = CamlQuery.CreateAllItemsQuery();
                items = TargetList.GetItems(query);

                clientContext.Load(items);
                clientContext.ExecuteQuery();
            }
            return items;
        }

其中一个字段包含指向共享点库中图像的 url,我正在尝试像这样检索它:

     public Model.Control createModelControl(Microsoft.SharePoint.Client.ListItem item)
        {
            return new Model.Control
            {

                BmpImg = new BitmapImage(new Uri((item["Image"] as FieldUrlValue)?.Url))
        }

当我检查结果时,这就是我所拥有的: enter image description here

enter image description here

我想我需要再次使用客户端上下文加载它,但不知道该怎么做。使用 Sharepoint 的前提下,有一个名为“DownloadData”的方法,但 SPO 似乎不存在它......

有什么想法吗?

【问题讨论】:

    标签: c# sharepoint-online


    【解决方案1】:

    我设法让它工作了,方法如下:

    public static BitmapImage DownloadDocumentFromSharepoint(string imgUrl)
    {
        try
        {
            ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;
    
            string userName = localSettings.Values["User"].ToString();
            string password = localSettings.Values["Pass"].ToString();
            string siteUrl = localSettings.Values["siteUrl"].ToString();
    
            using (ClientContext ctx = new ClientContext(siteUrl))
            {
                ctx.AuthenticationMode = ClientAuthenticationMode.Default;
                ctx.Credentials = new SharePointOnlineCredentials(userName, password);
                ctx.Load(ctx.Web, a => a.ServerRelativeUrl);
                ctx.ExecuteQueryAsync().GetAwaiter().GetResult();
    
    
                Microsoft.SharePoint.Client.File res = ctx.Web.GetFileByUrl(imgUrl);
                ctx.Load(res);
                ctx.ExecuteQueryAsync().GetAwaiter().GetResult();
    
    
                Windows.Storage.Streams.IRandomAccessStream fileContent = null;
                BitmapImage btmImgRes = new BitmapImage();
    
    
                ClientResult<Stream> data = res.OpenBinaryStream();
                ctx.Load(res);
                ctx.ExecuteQueryAsync().GetAwaiter().GetResult();
    
                using (MemoryStream mStream = new MemoryStream())
                {
                    if (data != null)
                    {
                        data.Value.CopyTo(mStream);
                        mStream.Position = 0;
                        fileContent = mStream.AsRandomAccessStream();                            
                        btmImgRes.SetSource(fileContent);
                    }
                }
                return btmImgRes;
            }
        }
        catch (Exception ex)
        {
            throw new Exception("fail to download document from sharepoint");
        }
    }     
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-14
      • 2014-06-03
      • 2014-02-12
      相关资源
      最近更新 更多