1. 程式人生 > >html5實現圖片上傳預覽

html5實現圖片上傳預覽

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			#test-image-preview{
				height: 500px;
				width: 80%;
			}
		</style>
	</head>
	<body>
		<input type="file" name="test-image-file" id="test-image-file" value="" multiple="multiple"/>
		<div id="test-file-info"></div>
		<div id="test-image-preview"></div>
		<script>
		   var
			    fileInput = document.getElementById('test-image-file'),
			    info = document.getElementById('test-file-info'),
			    preview = document.getElementById('test-image-preview');
			// 監聽change事件:
			fileInput.addEventListener('change', function () {
			    // 清除背景圖片:
			    preview.style.backgroundImage = '';
			    // 檢查檔案是否選擇:
			    if (!fileInput.value) {
			        info.innerHTML = '沒有選擇檔案';
			        return;
			    }
			    // 獲取File引用:
			    var file = fileInput.files[0];
			    // 獲取File資訊:
			    info.innerHTML = '檔案: ' + file.name + '<br>' +
			                     '大小: ' + file.size + '<br>' +
			                     '修改: ' + file.lastModifiedDate;
			    if (file.type !== 'image/jpeg' && file.type !== 'image/png' && file.type !== 'image/gif') {
			        alert('不是有效的圖片檔案!');
			        return;
			    }
			    // 讀取檔案:
			    var reader = new FileReader();
			    reader.onload = function(e) {
			        var
			            data = e.target.result; // 'data:image/jpeg;base64,/9j/4AAQSk...(base64編碼)...'            
			        preview.style.backgroundImage = 'url(' + data + ')';
			    };
			    // 以DataURL的形式讀取檔案:
			    reader.readAsDataURL(file);
			});
		</script>
	</body>
	<!--<script src="js/dtm.js" type="text/javascript" charset="utf-8"></script>-->
</html>