Created
November 20, 2017 23:58
-
-
Save obonyojimmy/fb4ef1a98da9f6f7c6abd6b4355dce00 to your computer and use it in GitHub Desktop.
file reader read images
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$(document).on('change', '#upload', addBackgroundImage); | |
function addBackgroundImage(event) { | |
var reader = new FileReader(); | |
var readerBase64 = new FileReader(); | |
var image = event.target.files[0]; | |
reader.onloadend = function() { | |
var realMimeType = getRealMimeType(reader); | |
if (realMimeType !== 'unknown') { | |
readerBase64.readAsDataURL(image); | |
} else { | |
alert("Please upload a valid image file"); | |
} | |
}; | |
reader.readAsArrayBuffer(image); | |
readerBase64.onloadend = function(){ | |
var base64 = this.result; | |
$('.bg').css('background-image', 'url('+base64+')'); | |
}; | |
$('#upload').val(''); | |
} | |
function getRealMimeType(reader){ | |
var arr = (new Uint8Array(reader.result)).subarray(0, 4); | |
var header = ''; | |
var realMimeType; | |
for (var i = 0; i < arr.length; i++) { | |
header += arr[i].toString(16); | |
} | |
// magic numbers: http://www.garykessler.net/library/file_sigs.html | |
switch (header) { | |
case "89504e47": | |
realMimeType = "image/png"; | |
break; | |
case "47494638": | |
realMimeType = "image/gif"; | |
break; | |
case "ffd8ffDB": | |
case "ffd8ffe0": | |
case "ffd8ffe1": | |
case "ffd8ffe2": | |
case "ffd8ffe3": | |
case "ffd8ffe8": | |
realMimeType = "image/jpeg"; | |
break; | |
default: | |
realMimeType = "unknown"; // Or you can use the blob.type as fallback | |
break; | |
} | |
return realMimeType; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment