JS+HTML5实现图片上传本地预览功能

作者:异步漫步

时间:2026-10-22

浏览:236

本文介绍如何利用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程序设计有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章