Implementing an image upload component
This sample component renders as an Upload
button to upload the image and a default image when the component loads for the first time. When you click on the Upload
, a file explorer pops up to pick an image.
The selected image renders within the component. Meanwhile, the Remove
button is shown if we need to reset. When you click on the Remove
button, the default image is displayed.
Available for
Model-driven apps
Code
You can download the complete sample component from here.
This sample shows how to create an image picker and showcases the device API and resources API to load the image defined in manifest. Image content is stored in base64 encoding and could be saved and revisited.
The resources.getResource
method takes the input as the web resource name defined in the component manifest and loads that web resource. The component renders an Upload
button and the default image for initial rendering. Images are defined in the manifest's resource node.
<resources>
<code path="index.ts" order="1" />
<css path="css/TS_ImageUploadControl.css" order="1" />
<img path="img/default.png" />
<resx path="strings/TSImageUploadControl.1033.resx" version="1.0.0" />
</resources>
The successCallback
will be triggered and the resource content injects in the successCallback
. Then you use the image element 'src' points to the content and the default image loads.
The device.pickFile
method opens a dialog box to select files for the upload. For desktop, it opens the file explorer, for the mobile client, it opens the library of the photo. When you click on the upload
button, the device API pickFile
triggers and the user picks up the file. Once the file is successfully picked, the file's filename, file content will be injected in the successCallback
.
Note
If the same form or table is used on the legacy web client, then the field will show out-of-box text component on legacy web client, where there might have UX issues. To make it hidden on the legacy web client, we could uncheck the Visibility checkbox and check Hide Default Control checkbox together.
Related topics
Download sample components
How to use the sample components
Device API component
Device API
Power Apps component framework API reference
Power Apps component framework manifest schema reference