SOURCE

console 命令行工具 X clear

                    
>
console
var dropbox = document.getElementById("dropbox");
var inputarea = document.getElementById("inputarea");
var preview = document.getElementById("preview");
var output = document.getElementById("output");

/**
 * 点击输入
 */
inputarea.addEventListener('change', function(event) {
	var files = inputarea.files;
	handle("filelists", files);
}, false);

/**
 * 拖拽实现
 */
dropbox.addEventListener("dragenter", function(e){
	e.stopPropagation();
	e.preventDefault();
}, false);

dropbox.addEventListener("dragover", function(e){
	e.stopPropagation();
	e.preventDefault();
}, false);

dropbox.addEventListener("drop", function(e){
	e.stopPropagation();
	e.preventDefault();

	var dt = e.dataTransfer;
	var files = dt.files;

	handle("filelists", files);
}, false);

/**
 * 复制粘贴
 */
dropbox.addEventListener('paste', function(event){
	// 添加到事件对象中的访问系统剪贴板的接口
	var clipboardData = event.clipboardData, items, item, types;
	if(clipboardData){
		items = clipboardData.items;
		if(!items){
			return;
		}
		item = items[0];
		// 保存在剪贴板中的数据类型
		types = clipboardData.types || [];
		for(var i=0; i < types.length; i++){
			if( types[i] === 'Files'){
				item = items[i];
				break;
			}
		}
		// 判断是否为图片数据
		if(item && item.kind === 'file' && item.type.match(/^image\//i)){
			// 读取该图片          
			var blob = item.getAsFile();
			handle("blob", blob);
		}
	}
});

function handle(type, data){
	// 处理结果
	var handleResult = function(file){
		var img = document.createElement("img");
			img.file = file;
			preview.appendChild(img);

			var reader = new FileReader();
			reader.onload = (function(aImg) { 
				return function(e) { 
					aImg.src = e.target.result; 
					output.innerHTML = e.target.result;				        
				}; 
			})(img);
			reader.readAsDataURL(file);
	}

	if (type === "filelists") {
		var files = data;
		for (var i = 0; i < files.length; i++) {
			var file = files[i];
			var imageType = /^image\//;
			if (!imageType.test(file.type)) {
					continue;
			}  
			handleResult(file);
		}
	} else if (type === "blob") {
		handleResult(data);
	}
}
<div class="header">
	<h1>图片转base64编码</h1>
</div>

<div class="layout_left">
	<div id="dropbox" class="dropbox">
		<div class="area">
			<input id="inputarea" type="file" name="file" multiple="multiple" accept="image/*" />
		</div>
	</div>
	<p class="des">支持【输入框选择 】【 拖拽选择 】【 截图粘贴】三种输入方式!</p>
	<div id="preview"></div>
</div>

<div class="layout_right" id="output"></div>
*{
	margin: 0px;
	padding: 0px;
	font-family: "microsoft yahei";
}
.header{
	width: 100%;
	height: 50px;
	background-color: #00A7FF;
}
.header h1{
	text-align: center;
	line-height: 50px;
	font-size: 18px;
	color: #fff;
}
.layout_left{
	position: absolute;
		top: 100px;
	width: 340px;
		overflow-x: hidden;
		z-index: 100;
}
.layout_left .dropbox{
	width: 300px;
	height: 300px;
	margin: 20px;
		border: 3px dashed #e6e6e6;
}
.layout_left .dropbox .area{
	margin: 100px auto;
	width: 100px;
	height: 100px;
	cursor: pointer;
	z-index: 999;
	background-repeat: no-repeat;
	background-size: 100% 100%;
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAABuwAAAbsBOuzj4gAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAOCSURBVHic7d0xSxxRFIbh15DOwl47u0MglVtEEQSL5B/YxtrKX2Jlra3/QAtBCGqxVoFwunRub2G9KeYuMbOzRhJnZtfve5pBZlcvnHfvjgujS+PxGNP1ru8FWL8cgDgHIO79Sx6UmZ+AXWAAbACrbS7K/tkIuAOGwGVE3P7tCUvPXQRm5gpwBOy/1gqtUyfAYUQ8zHrAzAAycws4A9aAR+AYuAGGETF6/bXa/8rMVapdehM4AJaBe2AvIq6bntMYQHnl/6Aa/jfga0T8bGnd1oLMXAdOgW2qCD407QSzLgKP+D38HQ9/8ZSZ7VDNcI1qplOmdoBywXdDte1/9PAXW9kJvlO9HWzWLwybdoDdcjz28BdfmeFx+XK3fr4pgEE53rS1KOvcZJaD+ommADbKcdjacqxrk1lu1E80BbAK4F/13o4ns5z6AM8fBYtzAOIcgDgHIM4BiHMA4hyAOAcgzgGIcwDiHIA4ByDOAYhzAOIcgDgHIM4BiHMA4hyAOAcgzgGIkw0gM88z87zvdfTtRX8f4I363PcC5oHsDmAVByDOAYhzAOIcgDgHIM4BiHMA4hyAOAcgzgGIcwDiHIA4ByDOAYhzAOIcgDgHIM4BiHMA4hyAOAcgzgGIcwDiHIA4ByDOAYibi3sDy02avdyrl5mz/3duOy4i4kvHP3Mm7wDi5mIH6OMVMXnlR8RS1z97nngHEOcAxDkAcQ5AnAMQ5wDEOQBxDkCcAxDnAMQ5AHEOQJwDEOcAxDkAcQ5AnAMQ5wDEOQBxDkCcAxDnAMQ5AHEOQJwDEOcAxDkAcXNxb2BPLvpewDyQDWCebtHuk98CxDkAcQ5AnAMQ5wDEOQBxDkCcAxDnAMQ5AHEOQJwDEOcAxDkAcQ5AnAMQ5wDEOQBxDkBcUwAjgMxc7Xgt1pInsxzVzzUFcFeOg9ZWZF2bzPKufqIpgGE5bra2HOvaZJbD+ommAC7L8SAz11tbknWizPCgfHlZPz8VQETcAifAMnCamb5QXFBldqdUszwps/3DrOEeAvfANnDlnWDxlJldUc3wnmqmU5bG4+b/m5iZW8AZsAY8AsfADTCMiKmrSetfudofUL3nH1C98u+BvYi4bnrOzADKN1wBjoD9V1+tdeEEOIyIh1kPeDaAicz8BOxS1bUB+DOC+TSi+lVvCFw2vefXvSgAe7t8hS/OAYhzAOJ+ATeBuJOueKnYAAAAAElFTkSuQmCC");
}
.layout_left .dropbox .area input[type="file"]{
	position: relative;
	top: 0px;
	left: 0px;
	width: 100px;
	height: 100px;
	opacity: 0;
	outline: none;
	cursor: pointer;
	overflow: hidden;
	z-index: 0;
}
.layout_left #preview img{
	width: 300px;
	margin: 20px;
}
.layout_left .des{
	display: block;
	font-size: 13px;
	text-align: center;
}

.layout_right{
	position: absolute;
	top: 100px;
	left: 340px;
	right: 0px;
	word-wrap:break-word;
		background-color: #eee;
		z-index: 100;
		font-size: 15px;
}