"How do I get this photo from my phone into my SharePoint list?"
If you've spent any time in the Power Platform forums, you've seen this question a dozen times. While it sounds simple, the "correct" way to do it depends entirely on how you want to use the data later.
Last verified: May 14, 2026. SharePoint Image column behavior and Power Automate connector UI can vary by tenant, connector version, and whether the source is Power Apps, a form, or raw file content. Treat the Image-column pattern below as tenant-tested guidance, not a universal guarantee.
In this guide, we'll demystify the Image Column vs. Attachments debate and show you exactly how to handle the upload logic.
1. Image Column vs. List Attachments
Before you drag an action onto your canvas, you need to decide where the image will live.
The Image Column
- Best for: Thumbnails in galleries, user profile pictures, and clean UI display.
- Pros: Easy to display directly in SharePoint and Power Apps; better performance for single images.
- Cons: Limited to one image per column; requires a specific JSON format when updating via Flow.
List Attachments
- Best for: Receipts, inspection photos, and supporting documentation.
- Pros: Supports multiple files per item; natively handles almost any file type.
- Cons: Harder to display "inline" in a gallery; requires more navigation to view.
2. Handling the Base64 "Gotcha"
Whether you're using a Power Apps Camera control or a standard web form, the image usually arrives in Power Automate as a Base64 string or a Data URI.
As I mentioned in my previous post on converting Data URIs, extra characters in that string can break your upload.
The Clean-Up Pattern
If your string looks like data:image/png;base64,iVBORw..., you must isolate the part after the comma.
last(split(outputs('Image_String'), ','))Then, you must convert it to binary for SharePoint to understand it:
base64ToBinary(outputs('Clean_String'))3. Uploading to a SharePoint Image Column
For some SharePoint Image column scenarios, passing raw binary data is not enough. You may need to provide a JSON metadata object to the "Update item" action, or you may decide to store the file as a list attachment and use the Image column only for display metadata.
The format should look like this:
{
"type": "thumbnail",
"fileName": "my_image.jpg",
"fieldName": "MyImageColumn",
"serverRelativeUrl": "/sites/YourSite/Lists/YourList/Attachments/ItemID/my_image.jpg"
}Wait, that looks complicated!
Compatibility note: Some tenants and connector versions let you map file content more directly in the action UI. Test this in your own tenant. If direct mapping fails, use the JSON pattern above or switch to the attachment-first pattern, which is usually more reliable for multiple field photos, receipts, and audit evidence.
4. Mobile considerations
If your users are uploading photos from the field (low connectivity), keep these tips in mind:
- Compress First: Don't upload raw 12MB photos if a 200KB thumbnail will do. Use Power Apps
JSON()function withIncludeBinaryDatacarefully. - Wait for Success: Always add a "Response" or notification in your app to confirm the upload finished. Silent failures on mobile are common when switching between Wi-Fi and LTE.
Summary
- Use Image Columns for visual UI elements.
- Use Attachments for documents and multiple photos.
- Always clean your Base64 strings before converting to binary.
Stop letting images break your flows. By choosing the right storage method and cleaning your data, you can build photo-uploading apps that actually work!



