【问题标题】:Power Apps Best Method for Storing Images in a SharePoint List ColumnPower Apps 在 SharePoint 列表列中存储图像的最佳方法
【发布时间】:2021-03-13 22:31:23
【问题描述】:

我有一个 Power App,可用于上传短信和图片。在接下来的 12 到 24 个月内最终将上传数千张此类图像,因此我需要一种将图像存储在 SP 列表中的可靠方法,以及一种在 Power App 中显示图像的可靠方法。我用于存储图像的 SharePoint 列表列类型是文本多行。我通过 Patch() 保存图像。我正在使用一个添加媒体按钮,它会生成一个名为“UploadedImage1”的图像附件。 我尝试了两种将图像存储在列类型为多行文本的 SP 列表中的方法。

     // Has intermittent issues displaying images stored in the SP List  
     Patch( ShoutoutsData, Defaults( ShoutoutsData ), { 
       Title: Value(Text(Now(), "[$-en-US]yyyymmddhhmmss")),
       Image: UploadedImage1.Image
     } )

    // Works but Image column is sometimes storing large image files and it does not require very many image uploads before the SP list starts having issues displaying in a browser (you get the "The browser is not responding do you wanna wait" message
    Patch( ShoutoutsData, Defaults( ShoutoutsData ), { 
      Title: Value(Text(Now(), "[$-en-US]yyyymmddhhmmss")),
      Image: Substitute(JSON(UploadedImage1.Image,JSONFormat.IncludeBinaryData),"""",""),
    } )

正如每个 Patch() 公式上方的 cmets 所述,每种方法都存在问题,因此我需要一种替代方法。有什么建议吗?

【问题讨论】:

    标签: sharepoint-online powerapps


    【解决方案1】:

    当我过去这样做时,我使用 Base64 并将其作为字符串保存到共享点列表中。

    【讨论】:

    • John - 您的 SP 列表中有多少条记录,您是否曾在浏览器中加载列表时遇到问题。我已经完成了将 Base64 字符串数据存储在文本多行列中的额外测试,并且我没有在浏览器中遇到问题,所以这可能是一次性的。感谢您的回复。
    【解决方案2】:

    这是一个保存到 OneDrive 的 Power Apps/Power Automate 解决方案 - 保存到 SharePoint 类似的方法:

    首先创建您的 Power Automate Flow,因为这在 Power Apps 中是需要的。

    1. 使用 Power Apps 作为触发器。
    2. 添加解析 JSON 步骤以从 Power Apps 触发器中提取 JSON 项。内容应为“Ask In Power Apps”,然后将填写“triggerBody()['ParseSON-Content']”。架构应如下所示(复制和粘贴):

    { “类型”:“数组”, “项目”: { “类型”:“对象”, “特性”: { “姓名”: { “类型”:“字符串” }, “图片”:{ “类型”:“字符串” } }, “必需的”: [ “姓名”, “图片” ] } }

    1. 选择创建文件步骤(到一个驱动器)。 (如果保存到 SharePoint,请使用创建或更新项目步骤)。添加文件夹路径。对于文件名,在动态内容选择中选择解析 JSON“名称”。

    由于传递到 Power Automate 的数组的性质,当从 Parse JSON 列表中选择“名称”时,它将调用“应用于每个”条件,如下所示:

    对于文件内容,添加如图所示的表达式:

    decodeDataUri 表达式的使用将图片格式从 Base64 解码为适合在 OneDrive(或 SharePoint)中使用的格式。

    您完成的 Power Automate Flow 应如下所示:

    在 Power Apps 中:

    1. 使用 addmedia 控件和保存图像按钮创建您的应用,如下所示:

    1. 通过将以下内容添加到 AddmediaButton1(添加媒体控件的一部分)来创建图像集合和图像名称 OnSelect 属性:ClearCollect(pics, { Pic: UploadedImage1.Image, Name: Rand()&".jpg "})。

    1. 添加到保存图像按钮的 OnSelect 属性:

      一个。 Set(MyPics, JSON(pics,JSONFormat.IncludeBinaryData)); - 创建一个变量 MyPics,用二进制数据格式化集合“pics”。

      b.调用您的电源自动化流程,将上面创建的变量“MyPics”传递到流程中。

    当您运行 Power Apps 应用程序时,调用添加媒体控件,它会在您加载或更改图像/媒体时创建集合。当您保存图像时,它将触发流程并导致文件保存到 OneDrive(或 SharePoint),文件名具有随机文件名,扩展名为 .jpg,如下所示:

    【讨论】:

      猜你喜欢
      • 2018-11-01
      • 2021-11-30
      • 1970-01-01
      • 2017-08-04
      • 1970-01-01
      • 1970-01-01
      • 2012-10-29
      • 2015-05-10
      • 1970-01-01
      相关资源
      最近更新 更多