H5实现本地预览图片

简介: 我们使用H5可以很容易的实现图片上传前对其进行预览的功能 Html代码如下: DOCTYPE html> UploadFile 实现预览功能的js代码如下: window.

我们使用H5可以很容易的实现图片上传前对其进行预览的功能

Html代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>UploadFile</title>
</head>
<body>
   <div>
        <img src="" id="img" style="width:200px;height:300px;" />
    </div>
    <input type="file" id="file" />
</body>
</html>

实现预览功能的js代码如下:

<script type="text/javascript">
    window.onload = function () {
        var fileTag = document.getElementById('file');
        fileTag.onchange = function () {
            var file = fileTag.files[0];
            var fileReader = new FileReader();
            fileReader.onloadend = function () {
                if (fileReader.readyState == fileReader.DONE) {
                    document.getElementById('img').setAttribute('src', fileReader.result);
                }
            };
            fileReader.readAsDataURL(file);
        };
    };
</script>


预览效果如下:

 

最后注意一点,H5实现图片预览只能使用原生JS进行DOM元素的操作,若使用jQuery则无法实现该效果。

参考文章:

H5中的File对象
H5中的FileList对象
H5中的FileReader对象
在web应用中使用文件

版权声明

本文为作者原创,版权归作者雪飞鸿所有。 转载必须保留文章的完整性,且在页面明显位置处标明原文链接

如有问题, 请发送邮件和作者联系。

目录
相关文章
|
10月前
|
机器学习/深度学习 存储 人工智能
使用DeepSeek进行元学习:训练模型快速适应新任务
本文介绍了如何使用DeepSeek框架实现元学习(Meta-Learning),特别是模型无关的元学习(MAML)。通过详细的代码示例,展示了从环境准备、数据生成、模型构建到MAML算法的具体实现步骤。最终,训练出的模型能够在新任务上快速适应并表现出色。元学习在数据量有限或任务不断变化的场景中具有重要应用价值。
|
小程序
日常记账微信小程序模板源码
日常记账微信小程序模板源码 模板介绍 一款实用的日常记账微信小程序模板下载。包含:引导页、登录、记账中心、消息、通讯录、个人中心等模块。
231 4
|
小程序 前端开发 JavaScript
微信小程序——解决异步问题
微信小程序——解决异步问题
805 0
|
存储 缓存 OLAP
阿里云 X Apache Doris X Zilliz沙龙回顾|大模型时代的数据存储与分析
9月16日,阿里云存储和云原生联合两个热门的数据分析项目 Apache Doris 和 Zilliz 共同探讨非结构化数据处理和分析的最佳实践
1199 0
解决手机端中overflow: auto引起的内容滑动卡顿问题
解决手机端中overflow: auto引起的内容滑动卡顿问题
402 0
|
存储 算法 C语言
【数据结构】顺序表:随机访问的速度快到飞起
【数据结构】顺序表:随机访问的速度快到飞起
【数据结构】顺序表:随机访问的速度快到飞起
|
机器学习/深度学习 并行计算 数据可视化
PyTorch自定义CUDA算子教程与运行时间分析
PyTorch自定义CUDA算子教程与运行时间分析
518 0
|
Web App开发 JavaScript API
监听Dom大小变化之ResizeObserver
在以前如果我们想要监听`dom`元素的大小变化,我们是没有对应的 api 可以使用的,在此之前我们都是只能监听浏览器窗口的大小变化,于是衍生出很多的 hack 方法,比如 resize 事件
1559 0
|
容器
写了个自定义指令,支持elementUI2.0下拉框组件虚拟列表显示
由于业务对页面性能要求很高,如果下拉框数据很大,一个页面有多个下拉框,那么就导致页面很卡顿。由于elementPlus已经支持了下拉组件虚拟列表,但所在项目仍然使用elementUI2.0,所以需要自己扩展支持下拉组件虚拟列表
866 0
写了个自定义指令,支持elementUI2.0下拉框组件虚拟列表显示
|
存储 JSON JavaScript
Node.js 日志之winston使用指南
前面在《Node.js 日志最佳实践指南》介绍了关于日志的最佳实现指南,本文将使用 Winston 库来构建一个简单的日志功能。
2207 0
Node.js 日志之winston使用指南