zoukankan      html  css  js  c++  java
  • 上传文件

    写在前面的话:

      判断是否符合大小,上传文件。最初是使用插件webuploader来做的,但是因为其初始化的关系,点击区域始终为1px*1px,refresh之后也不能解决我的问题,所以,试了下下边的方法:

    FormData():相关资料


    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
        <script src="https://cdn.bootcss.com/jquery/3.2.0/jquery.min.js"></script>
    </head>
    
    <body>
    <style>
        .imgs {
            margin: 60px auto;
            border: 1px solid red;
        }
    </style> <div class="box"> <label for="files" class="btn btn-info">选择文件</label> <!-- label的for属性与input:file的id属性关联起来时, 当label被点击的时候, input对象也会获取焦点, 弹出文件选择窗口 --> <input type="file" name="name" id="files" style="display: none"> <div class="imgs"> </div> <!-- 存放预览图片 --> </div> <script> $('#files').change(function() { // 这里绑定的是input:file 对象的change事件 是你的实际情况绑定对应的事件 var a = new FormData(); // 向后台发送文件 使用 FormData 对象 包裹文件 a.append('Cander', this.files[0])
        
    // 这里的this是 input:file 对象 它的files属性就是用户选择的文件 它是一个数组, 可以选择多个文件 // 这里我们只选择一个 就取数组中的第一个文件 console.log(this.files[0]) // 在向后台上传之前可先判断一下图片的大小,如果符合条件就上传: var max_size = 100000002; var max_width = 1000; var max_height = 800; // 先判断大小 if (this.files[0].size <= max_size) { var image = new Image(); image.src = getObjectURL(this.files[0]); image.onload = function() { console.log(image.width) console.log(image.height) if (image.width <= max_width && image.height <= max_height) { // 上传至后台 $.ajax({ type: 'POST', processData: false, // 发送文件时这两个选项要关闭 contentType: false, // 发送文件时这两个选项要关闭 url: 'your url', data: a,       // 这里向服务器发送的对象就是承载了文件的form对象 success: function(s) { console.log(s) if (s.code === 0) { var b = $('.imgs').html() $('.imgs').html(b + '<img src="' + s.url + '">') } }, error: function(f) { console.log(f) } }) } } }else{ } });
    // 获取图片路径函数 function getObjectURL(file) { var url = null; if (window.createObjcectURL != undefined) { url = window.createOjcectURL(file); } else if (window.URL != undefined) { url = window.URL.createObjectURL(file); } else if (window.webkitURL != undefined) { url = window.webkitURL.createObjectURL(file); } return url; } </script> </body> </html>

    console.log(this.files[0]) 的结果:

    注: 文中 ‘获取图片路径函数’来自于  https://segmentfault.com/q/1010000011739866?sort=created

  • 相关阅读:
    Java实现 LeetCode 284 顶端迭代器
    Java实现 LeetCode 284 顶端迭代器
    Java实现 LeetCode 283 移动零
    Java实现 LeetCode 283 移动零
    Java实现 LeetCode 283 移动零
    Java实现蓝桥杯VIP 算法训练 阶乘末尾
    nginx自定义模块编写-根据post参数路由到不同服务器
    nginx location的管理以及查找
    nginx的请求接收流程(二)
    nginx的请求接收流程(一)
  • 原文地址:https://www.cnblogs.com/Christeen/p/7794304.html
Copyright © 2011-2022 走看看