input[type=file]样式更改以及图片上传预览

  以前知道input[type=file]可以上传文件,但是没用过,今天初次用,总感觉默认样式怪怪的,想修改一下,于是折腾了半天,总算是小有收获。

  

  以上是默认样式,这里我想小小的修改下:

  HTML代码如下:

1
2
3
<form action="" name="file" class="file">
    上传文件<input type="file" id="img" name="img">
</form>

  

  css代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<style>
    .file{
    width: 75px;
        height: 25px;
    line-height: 25px;
    text-align: center;
    background-color: green;
    position:relative;
    }
    .file input{
    width: 75px;
        height: 25px;
    opacity:0;
    filter:alpha(opacity=0);
    position:absolute;
    left:0;
    top:0;
    }
</style>       

  

  更改后,效果如下(样式很丑,这里主要是阐述下怎么更改input[type=file]默认样式的)

  

 

  下面来说下使用input[type=file]上传图片实现预览效果的。

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .file{
           width: 75px;
            height: 25px;
            line-height: 25px;
            text-align: center;
           background-color: green;
           position:relative;
        }
        .file input{
           width: 75px;
            height: 25px;
           opacity:0;
           filter:alpha(opacity=0);
           position:absolute;
           left:0;
           top:0;
        }
    </style>
</head>
<body>
    <form action="" name="file" class="file">
        上传文件
        <input type="file" id="img" name="img">
    </form>
    <div id="dd"></div>
    <script>
        var file = document.getElementById("img");
        file.onchange = function(){  // 文本框内容改变时触发
            var files = this.files; // 获取文件的数量
            for(var i=0;i<files.length;i++){
                readers(files[i])
            }
        }
        function readers(fil){
            var reader = new FileReader();  // 异步读取存储在用户计算机上的文件
            reader.readAsDataURL(fil); // 开始读取指定的Blob对象或File对象中的内容
            reader.onload = function(){
                document.getElementById("dd").innerHTML += "<img src='"+reader.result+"'>";  // 添加图片到指定容器中
            };
        }
    </script>
</body>
</html>

  

 

posted @   江峰★  阅读(7702)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示