zoukankan      html  css  js  c++  java
  • input 标签 type=“file“ 随笔

    index.html

    <!DOCTYPE html>
    <html lang="zh-CN">
        <head>
            <meta charset="utf-8">
            <meta http-equiv="X-UA-Compatible" content="IE=edge">
            <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
            <meta name="author" content="黄金亮">
            <title></title>
            <style>
                img{
                     100px;
                }
            </style>
            <!--<link href="index.css" rel="stylesheet">-->
        </head>
        <body>
            <!--上传文件时
            请求方法(method)因该设置为POST
            编码类型(enctype:encode type)应该设置为multipart-->
            <form action="#" method="POST" enctype="multipart/form-data">
                <!--accept表示期望的文件类型。格式:
                image/*
                .jpg,.png 或其他文件扩展名(后缀名)
                accept不是强制的,用户可以通过在弹出框上选择“所有文件”来选择任何文件
                添加multiple属性支持文件多选-->
                <input type="file" name="photo" accept=".jpg,.png" multiple>
            </form>
            <script src="index.js"></script>
        </body>
    </html>

    下面是获取文件信息

    index.js

    var input = document.querySelector("input")
    
    input.onchange = function (event) {
    
    
            var file = input.files[0];
            var reader = new FileReader();
            // readAsText只能用来读取文本文件,不能用它读取图片等非文本文件
            reader.readAsText(file);
    
            reader.onload = function () {
                console.log(reader);
                
                // 通过result属性获得文本内容
                document.body.innerText = reader.result;
            }
    
    
        // console.log(event)
        // console.log(input.files)
        // 把一个类似数组的对象转换成数组方法:
        // ES5中老方法,几乎都支持 
        // console.log(Array.prototype.slice.call(input.files));
        // ES6中的新方法,注意手机浏览器支持不好
        // console.log(Array.from(input.files));
        // 使用Jquery或underscore等第三方脚本库中的方法
        
        // var files = Array.from(input.files);
        // files.forEach(function (file,index) {
        //     console.log(file.name);
        //     console.log((file.size/1024/1024).toFixed(3)+ "kb");
    
        // var url = URL.createObjectURL(file);
        // console.log(url);
    
        // console.log(file.type);
    
        // if (file.type.startsWith("image/")) {
        //     // console.log(file.type);
        //     var img = document.createElement("img");
        //     img.src = url;
        //     document.body.appendChild(img);
    
        //     // 通过img标签对象可以得到图片的原始宽度和高度,以及当前实际宽高
        //     console.log(img)
    
        //     // 实际上还是img标签元素,只是没有添加到页面上,通常用来做图片预加载
        //     var image = new Image();
        //     image.src = url;
        //     console.log(image);
        // }
    
        // })
    }
  • 相关阅读:
    [面试没答上的问题1]http请求,请求头和响应头都有什么信息?
    模拟进度条发现的彩蛋
    实现JavaScript forEach
    JavaScript实现动画效果
    Contents Of My Blogs
    阅读笔记-拍出好照片的30个构图基本功
    阅读笔记-李鸿章传
    阅读笔记-人性的弱点
    阅读笔记-XWord:未来进化
    阅读笔记-活法
  • 原文地址:https://www.cnblogs.com/huangjinliang/p/5842147.html
Copyright © 2011-2022 走看看