JS+HTML5实现图片上传本地预览功能
本文介绍如何利用HTML5和JavaScript实现图片上传前的本地预览功能。通过FileReader API或URL.createObjectURL方法,可以在文件未提交至服务器前在页面显示图片,避免无效上传。示例包含完整的HTML表单结构与JS处理逻辑,适用于需要即时反馈的用户头像或附件上传场景。
HTML5 JS实现图片上传本地预览功能
本文详细介绍如何使用JavaScript结合HTML5技术实现图片上传时的本地预览效果。
在实际项目开发中,常需使用input标签的file类型进行文件上传。为了提升用户体验,往往希望在文件正式提交服务器之前,先在前端页面展示图片预览。过去的一种常见做法是先将文件上传至服务器,获取返回的URL后再显示在页面上。这种方式存在缺陷:若用户最终未保存基本信息,但头像已因预览而上传,后续修改会导致服务器存储大量冗余图片。
经过调研,可采用以下解决方案实现纯前端的图片预览:
<!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.min.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>
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript+HTML5特效与技巧汇总》、《JavaScript图片操作技巧大全》、《JavaScript图形绘制技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述内容对JavaScript程序设计有所帮助。
D3.js 比例尺与坐标轴的配置详解
2026-11-05 16:54:46
JavaScript怎么遍历对象的Symbol键和不可枚举属性
2026-11-05 13:13:39
封装一个健壮的JS字符串判空工具函数
2026-11-05 12:16:14
JavaScript合并数组的三种常用方法:concat、扩展运算符与push
2026-11-05 11:22:29
JavaScript立即执行函数(IIFE)是什么及基本语法
2026-11-05 10:51:19
