我正在构建一个基本的社交网络,并在注册中用户上传了一个显示图像。 基本上我想显示图像,就像在表单的同一页面上预览一样,然后在表单提交之后选择它。HTML输入类型=文件,在提交表单之前获取图像
这可能吗?
我正在构建一个基本的社交网络,并在注册中用户上传了一个显示图像。 基本上我想显示图像,就像在表单的同一页面上预览一样,然后在表单提交之后选择它。HTML输入类型=文件,在提交表单之前获取图像
这可能吗?
无法显示图像,直到它从任何服务器提供服务。因此您需要将图像上传到服务器以显示其预览。
谢谢,简单但正是我需要:) – Tom 2011-04-27 10:30:47
很好的解释 – 2015-09-26 10:20:52
这是一个错误的答案......虽然它出现在顶级的结果...看到讨论中的其他链接或http://stackoverflow.com/questions/14069421/ show-an-image-preview-before-upload – 2017-04-04 15:51:20
我觉得我们有一个相关的讨论早:How to upload preview image before upload through JavaScript
啊,很好的地方。我把这个问题标记为潜在的重复。 – 2011-04-27 14:42:34
这可以很容易地与HTML 5实现,看到这个链接http://www.html5rocks.com/en/tutorials/file/dndfiles/
下面是在上传之前预览图像的完整示例。
HTML:
<html>
<head>
<link class="jsbin" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.0/jquery-ui.min.js"></script>
<meta charset=utf-8 />
<title>JS Bin</title>
<!--[if IE]>
<script src="http://goo.gl/r57ze"></script>
<![endif]-->
</head>
<body>
<input type='file' onchange="readURL(this);" />
<img id="blah" src="#" alt="your image" />
</body>
</html>
的JavaScript:
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#blah')
.attr('src', e.target.result)
.width(150)
.height(200);
};
reader.readAsDataURL(input.files[0]);
}
}
我发现这simpler yet powerful tutorial它使用fileReader
对象。它只是简单地创建一个img元素,并使用的FileReader对象,它的源属性分配为形式的输入值
function previewFile() {
var preview = document.querySelector('img');
var file = document.querySelector('input[type=file]').files[0];
var reader = new FileReader();
reader.onloadend = function() {
preview.src = reader.result;
}
if (file) {
reader.readAsDataURL(file);
} else {
preview.src = "";
}
}
<input type="file" onchange="previewFile()"><br>
<img src="" height="200" alt="Image preview...">
function previewFile() {
var preview = document.querySelector('img');
var file = document.querySelector('input[type=file]').files[0];
var reader = new FileReader();
reader.onloadend = function() {
preview.src = reader.result;
}
if (file) {
reader.readAsDataURL(file);
} else {
preview.src = "";
}
}
<input type="file" onchange="previewFile()"><br>
<img src="" height="200" alt="Image preview...">
你可以添加一些解释?谢谢 – Allan 2017-12-07 06:46:07
的可能重复的[如何上传前通过JavaScript上传预览图像](http://stackoverflow.com/questions/4094012/how-to-upload-preview-image-before-upload-through-javascript) – 2011-04-27 14:42:16