JS进行图片预览,上次说的总体是两种方式(http://javacui.com/javascript/296.html ),一种是URL.createObjectURL(file),一种是FileReader()。
在进行Android客户端APP访问页面时,发现那种方式也不行。看错误,APP上根本不能使用createObjectURL,那就用FileReader吧,发现页面访问没问题,而APP访问时就是不行。
由于也不报错,我只能对比下e.target.result的结果了。在Google Chrome打印出来的结果来看,是以
data:image/jpeg;base64,
打头的Base64图片内容,但是弹出一下APP上的内容,发现是
data:base64,
不知道为什么少了字符,不过我还是马上使用替换,把内容回归为标准格式:
i.src = e.target.result.replace("data:base64","data:image/jpeg;base64");于是,预览的方法写成:
function preview(file,imgPreviewId) {
var reader = new FileReader();
reader.onload = function(e) {
var img = e.target.result;
img = img.replace("data:base64","data:image/jpeg;base64");
document.getElementById(imgPreviewId).src = img;
}
reader.readAsDataURL(file);
}在File对象的Change方法里面写:
function handleFileSelect (ePara) {
var file = ePara.target.files[0];
preview(file,'picZhengMian');
}使用JS监听增加change事件:
document.getElementById('photoImg').addEventListener('change', handleFileSelect, false);也许你发现了,这并不是完美的解决方案。所以各位大佬们,你们懂得。
附上一个简介命令的HTML5上传预览测试页面:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>html5 图片上传预览</title>
<style>
#preview {
width: 300px;
height: 300px;
overflow: hidden;
}
#preview img {
width: 100%;
height: 100%;
}
</style>
<script src="jquery-1.7.2.js"></script>
<script type="text/javascript">
function preview1(file) {
var img = new Image(), url = img.src = URL.createObjectURL(file)
var $img = $(img)
img.onload = function() {
URL.revokeObjectURL(url)
$('#preview').empty().append($img)
}
}
function preview2(file) {
var reader = new FileReader()
reader.onload = function(e) {
var $img = $('<img>').attr("src", e.target.result)
$('#preview').empty().append($img)
}
reader.readAsDataURL(file)
}
$(function() {
$('[type=file]').change(function(e) {
var file = e.target.files[0]
preview1(file)
})
})
</script>
</head>
<body>
<form enctype="multipart/form-data" action="" method="post">
<input type="file" name="imageUpload"/>
<div id="preview" style="width: 300px;height:300px;border:1px solid gray;"></div>
</form>
</body>
</html>注意:需要JQuery文件。

推荐您阅读更多有关于“ android 图片预览 createObjectURL FileReader ”的文章
Java小强
未曾清贫难成人,不经打击老天真。
自古英雄出炼狱,从来富贵入凡尘。
发表评论: