Javascript回显图片
第一种base64
<!DOCTYPE html>
<html>
<head>
<script type = "text/javascript" src = "../js/jquery-1.11.0.min.js"></script>
<style>
.submitimg{
width:50px;
height:50px;
}
</style>
</head>
<body>
<div class="head-p" id="touxiang">
<img src="../img/头像.jpg" alt='头像' width="100" height="100" id="avatar_img">
</div>
<div id="fromTx">
<input type="file" class="file" name="avatar" id="avatar">
</div>
<script>
$("#avatar").change(function () {
var choose_file = $(this)[0].files[0];
console.log($(this))
console.log($(this)[0].files)
console.log(choose_file)
var ftype=choose_file.name.substring(choose_file.name.lastIndexOf(".")+1);
if(ftype=="jpg" || ftype=="png" || ftype=="jpeg" || ftype == "JPG"){
var reader = new FileReader();
reader.readAsDataURL(choose_file);
reader.onload=function () {
$("#avatar_img").attr("src",this.result);
}
}else{
alert("头像格式不对,请重新选择!");
return false;
}
});
</script>
</body>
</html>
第二种window.URL.createObjectURL/window.URL.webkitURL
<!DOCTYPE html>
<html>
<head>
<title>test page</title>
</head>
<body>
<input type="file" id="fileElem" multiple accept="image/*" onchange="handleFiles(this)" style="display:none; ">
<div id="fileList" style="width:200px;height:200px; border:1px solid #ccc;"></div>
<button onclick="submitImg()">上传图片</button>
<div>
<img src="blob:null/336a4725-b376-498f-9ba1-1f66b3912828" width="200"></div>
<img src="../img/头像.jpg" width="200"></div>
</body>
<script>
window.URL = window.URL || window.webkitURL;
var fileElem = document.getElementById("fileElem"),
fileList = document.getElementById("fileList");
function handleFiles(obj) {
var files = obj.files;
console.log("files",files)
img = new Image();
if (window.URL) {
alert(files[0].name + "," + files[0].size + " bytes1");
img.src = window.URL.createObjectURL(files[0]);
console.log("img.src1",img.src)
img.width = 200;
img.onload = function (e) {
console.log("img.src1",this.src)
window.URL.revokeObjectURL(this.src);
}
fileList.appendChild(img);
} else if (window.FileReader) {
var reader = new FileReader();
reader.readAsDataURL(files[0]);
reader.onload = function (e) {
alert(files[0].name + "," + e.total + " bytes2");
img.src = this.result;
console.log("img.src2",img.src)
img.width = 200;
fileList.appendChild(img);
}
} else {
obj.select();
obj.blur();
var nfile = document.selection.createRange().text;
document.selection.empty();
img.src = nfile;
console.log("img.src3",img.src)
img.width = 200;
img.onload = function () {
alert(nfile + "," + img.fileSize + " bytes3");
}
fileList.appendChild(img);
}
}
function submitImg() {
fileElem.click()
}
</script>
</html>
第三种blob:二进制数据流
<!DOCTYPE html >
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
</head>
<body>
<input type="file" id="input" />
<script>
input.onchange = function(e){
var file = e.target.files[0]
var img = new Image();
console.log(img)
img.src = URL.createObjectURL(file);
console.log(URL.createObjectURL(file))
document.body.appendChild(img)
}
</script>
</body>
</html>
第四种base64
<!DOCTYPE html>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
</head>
<body>
<input type="file" id="input" />
<script>
input.onchange = function(e){
var file = e.target.files[0]
var img = new Image()
document.body.appendChild(img)
var fileRead = new FileReader()
fileRead.onload = function(){
img.src = fileRead.result
console.log(fileRead.result)
}
fileRead.readAsDataURL(file)
}
</script>
</body>
</html>