File to "data:;base64..." URL converter
Convert any, reasonably sized, file into "data:;base64..." URL for resource embedding purposes.
HTML
<fieldset>
<legend>File upload controls:</legend>
<input id="upload" type="file"/>
<div id="drop">
<div class="title">DRAG AND DROP ANY FILE HERE</div>
</div>
</fieldset>
<fieldset>
<legend id="filename">Result: </legend>
<textarea id="result" readonly="readonly" cols="20" rows="2"></textarea>
</fieldset>
CSS
#drop {
border: 1px dashed #888;
width: 86%; height: 25px;
position: relative;
}
#drop:hover {
background-color: rgba(0, 0, 0, 0.1);
}
#drop .title {
position: absolute; top: 4px; left: 0px;
text-align: center;
width: 100%;
z-index: 100;
}
#result {
width: 86%;
height: 25em;
}
JavaScript
/**
* Copyright (c) 2013 Block Alexander
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*/
jQuery(document).ready(function ($) {
$("#upload").on("change", OnGetFile);
$("#drop").on("drop", OnGetFile);
function OnGetFile (e) {
$("#filename").html("get ready...");
e.stopPropagation();
e.preventDefault();
var file = null;
if (e.dataTransfer) {// file drag and drop
file = e.dataTransfer.files[0] || null;
} else if ($("#upload")[0].files) {// file upload
file = $("#upload")[0].files[0] || null;
}
if (!file) {
return;
}
var reader = new FileReader();
reader.readAsDataURL(file, "UTF-8");
reader.onload = function (e) {
$("#filename").html("Result: '"+ file.name +"' ("+ e.target.result.length +" B)");
$("#result").val(e.target.result);
};
reader.onerror = function (e) {
$("#result").val(e.target.error);
};
}
});