cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Helper III
Helper III

Best place to upload images from a PowerApp

Hi,

I have managed to create an audit app which currently uses two Sharepoint lists (one for questions, one answers) as data sources. The questions pulled from one list are displayed in a gallery which patches via a collection, to the second list. All works well (with help from YouTube videos and this forum!).

Now, I want to add the option of taking an image with a tablet/phone camera as part of a question and uploading it to a data source. I was trying to add the images to a third sharepoint list with columns that filled with data such as the question and audit number as well as the image and have managed to upload the image in JSON format but am not sure what to do with this to make it an image file I can use in reports etc. This whole area seems so complicated, I can't find an obvious solution. I need the images in a data source that I can easily access from my PC for use in audit reports. 

As I'm at an early stage, can anyone suggest the best way for me to save the images from the app? Sharepoint would be ideal as that is where the other data but I could move to One Drive if needed. Would a document library be easier? Could I upload the images as attachments?

Any advice would be appreciated. It seems a bit odd that something that is surely a frequent need from an app is so complicated, for a newbie anyway.

Thanks.

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted
Super User
Super User

Re: Best place to upload images from a PowerApp

Hi @IzzyWizz ,

I use something similar to the structure in Shane Young's video, but get the data from an "Add Picture" control. The JSON code is the same (Base64 only) and the Flow is the same idea (Base64ToBinary conversion).

The extra bit is adding Update File Properties to the Flow (the Id is simply the ItemId of the Create file step) and sending the Identifier (and any other data you want attached) from Power Apps.

I don't believe you can Patch to a Library however.
If you want multiple pictures, Shane's video also covers this.

 

Please click Accept as solution if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If the content was useful in other ways, please consider giving it Thumbs Up.

 

View solution in original post

6 REPLIES 6
Highlighted
Super User
Super User

Re: Best place to upload images from a PowerApp

Hi @IzzyWizz ,

Three options really.

  1. Use a SharePoint Library via JSON and Power Automate and send metadata to the Library linking the image to the "master" record and view these in a gallery.
  2. Use the attachment control, which allows multiple items, which can be viewed in a gallery on the record.
  3. Store in a multi-line text field in the SP list itself (you will need one field per image), which can also be viewed.

Happy to elaborate further with a specific scenario.

 

Please click Accept as solution if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If the content was useful in other ways, please consider giving it Thumbs Up.

Highlighted
Helper III
Helper III

Re: Best place to upload images from a PowerApp

Thank you @WarrenBelz .

I have managed to do option 3 but now I have a lot of letters and numbers in a multiline column in a Sharepoint list and I am not quite sure what to do with it 😀. How can 'make' it back into an image that I can see in the list or can't I? My hope is that once I have the list finished, I can use flow to make a report each time an audit is completed.

This is the code I used for the upload of the pictures to the list from my PictureCol collection:

 

ForAll(PictureCol,Patch('Audit App Answers Images',Defaults('Audit App Answers Images'),{Title:IDAuditVar,QuID:Question,Picture:Substitute(JSON(UploadedImage1.Image,JSONFormat.IncludeBinaryData),"""","")
,AuditID:IDAuditVar}));

 

Do you think that going down the attachment route would be better?

Thanks,

Izzy.

 

Highlighted
Super User
Super User

Re: Best place to upload images from a PowerApp

@IzzyWizz ,

A couple of things - this code obviously works and will put Base64 Text into the Picture field (not a good name for a field as it is a Reserved Word in Power Apps) 

ForAll(
   PictureCol,
   Patch(
      'Audit App Answers Images',
      Defaults('Audit App Answers Images'),
      {
         Title:IDAuditVar,
         QuID:Question,
         Picture:
         Substitute(
            JSON(
               UploadedImage1.Image,
               JSONFormat.IncludeBinaryData
            ),
            """",
            ""
         ),
         AuditID:IDAuditVar
      }
   )
)

So to your questions.

You can "make it a Picture" with Power Automate with the Base64ToBinary conversion if you need, but to be honest, I only use this method of storage for signatures and other images I only ever want to display on the record in Power Apps (which in an Image Control is simply ThisItem.FieldName).

Attachments are not a bad method if you do not want to find the images outside Power Apps and you can view them in a gallery referencing the item.

My personal preference (which is probably more related to our particular business needs) is a SharePoint Library with an identifier in the metadata linking the image to the "parent" record (I use a numeric field with the ID of the Parent). This allows an unlimited number of images, which are also able to be viewed separately in a Library View in SharePoint and a Gallery in Power Apps and are also easily retrieved with a Flow.

I hope this helps.

 

Please click Accept as solution if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If the content was useful in other ways, please consider giving it Thumbs Up.

Highlighted
Helper III
Helper III

Re: Best place to upload images from a PowerApp

Hi @WarrenBelz,

I like the document library idea with metadata tags in place of the columns that I currently have in my list. I am expecting the answer to this to be no but, is it easier to upload my image files to a document library rather than using a combination of JSON format and a Power Automate flow to upload to a list?

Can I Patch to a document library? I have had a look at a Shane Young video but that uses the Attachment control from an Edit form, the JSON format (after chopping bits off the start and end) and Power Automate. I assume that, if he is, then that is also the approach to take for uploading to a document library too?

My pictures are in a collection in my app, one column is the image file, the second is the question number to which it relates:

 

If(PictureColVar=1,Collect(PictureCol,{Image:UploadedImage1.Image,Question:1}),
PictureColVar=2,Collect(PictureCol,{Image:UploadedImage1.Image,Question:2}),
PictureColVar=3,Collect(PictureCol,{Image:UploadedImage1.Image,Question:3}),
PictureColVar=4,Collect(PictureCol,{Image:UploadedImage1.Image,Question:4}),

etc. Not very neat but I couldn't work out how to put them together.

 

Where PictureColVar is set as below (I will stop using the word, picture!):

 

auditapp.png
This collection is then patched to my Sharepoint list as shown before. Now, I would need to upload each image to the document library with the question number and other data that is added in the Patch function as metadata. 

How do I do that? As I have already managed to get the JSON format in my Sharepoint list (but with the bits on the start and end), if I need a flow, is it easier to write a flow to copy the file from the list to a library?

Thanks,

Izzy.

Highlighted
Super User
Super User

Re: Best place to upload images from a PowerApp

Hi @IzzyWizz ,

I use something similar to the structure in Shane Young's video, but get the data from an "Add Picture" control. The JSON code is the same (Base64 only) and the Flow is the same idea (Base64ToBinary conversion).

The extra bit is adding Update File Properties to the Flow (the Id is simply the ItemId of the Create file step) and sending the Identifier (and any other data you want attached) from Power Apps.

I don't believe you can Patch to a Library however.
If you want multiple pictures, Shane's video also covers this.

 

Please click Accept as solution if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If the content was useful in other ways, please consider giving it Thumbs Up.

 

View solution in original post

Highlighted
Helper III
Helper III

Re: Best place to upload images from a PowerApp

Hi @WarrenBelz ,

Thank you for your help. I have managed to get to the point where my images upload to my Sharepoint list as Base64 and a flow then automatically creates a jpeg file with the additional details I want added in a Sharepoint document library. 

I'm now going to work on taking out the intermediate step.

Cheers,

Izzy.

Update- Well, that bit was easy! I just changed the flow to add an attachment to the same list rather than a file to a document library. That should meet my needs.

Helpful resources

Announcements
secondImage

New Return to Workplace

Reopen responsibly, monitor intelligently, and protect continuously with solutions for a safer work environment.

Check this Out

Helpful information

Featuring samples like Return to the Workplace and Emergency Response Applications

secondImage

Power Platform 2020 release wave 2 plan

Features releasing from October 2020 through March 2021

Top Solution Authors
Top Kudoed Authors
Users online (7,820)