Wednesday, 17 May 2017

Loading Binary IMG Buffer to Input.file

Working in Node.js, running in to an issue with images.

I have an image that is generated dynamically on the client in to a buffer, for example:

<img id="testImage" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAMgB9AMBEQACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AP78KACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAPBPj/oPxM8VfAj4zeFvg/q2kaZ8XvEfw7+JHh/4R+Itb1bU9N0rQfiPrHg7XtF8I65q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CgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAPwP/wCCwf8AwQw+GX/BXvVfhv4p8eftBfFf4Q+IfhH4c8Q+H/Bdr4e0bwd4q8ORQ+J7vTdU1jULnwpq+l6JrC61fz6NpdtdX1j40gNxpWkQWqxbnbYAfBP7KP8AwaN/sNfBH4gWPxP+PnxP+J/7XF/4W1HT9X0jwx4x0vTNE8A6rqulXovLJvGPg/TTr2u+LbCNG09m8M6n41/4Q/WkWRfEHh3X9Ek8uQA/rZtra2sbaK1tYYLe3t4Ft7W1t1WCC3ggUIsECqFCIgUD5Qowo+VQowAXaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//Z">

Now the image works properly (if you copy & paste it to a html file it should work).

But our application uses an NPM package to upload images to Amazon S3. This package normally only accepts file input objects from client. Example:

<input type="file" id="uploadFile">

document.getElementById('uploadFile').files[0]

I need a way to load the data from testImage in to the uploadFile.files data, so that our system can upload it from there. Have not found success in my attempts.

Any advice would be appreciated!



via n drosos

No comments:

Post a Comment