Why not simply use the FileUploader element? It works fine for images, since an image is a file.
You can also conditionally set the placeholder text based on whatever criteria (conditions) you want. It could, for instance, say “Attach image” when no image has been uploaded and “Replace image” otherwise.
It’s important to understand that uploading a new file doesn’t automatically delete the previous one from your Bubble storage. You, as the Bubble dev, must manage your Bubble storage yourself (via the Delete an uploaded file action).
Additionally, if users are uploading multi-megabyte images from their devices but you don’t need all that resolution, then you might consider something like Upload Buddy, which (among other things) enables in-browser downsampling (image compression) to conserve Bubble storage.
-Steve