• 图片的拖曳上传和预览(jQuery实现)


    jsp页面代码:

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>注册用户</title>
    </head>
    <script src="js/jquery-1.11.3.min.js"></script>
    <script src="js/upload.js"></script>
    <body>
    <form id="frm">
            图片:
        <div id="drop_area"></div>
    </body>
    <script>
        $(function(){
            var f;
            var dragImgUpload = new DragImgUpload("#drop_area",{
                callback:function (files) {
                    //回调函数
                    f = files[0];
                }
            });
        });
    </script>
    </html>

    upload.js代码:

    function DragImgUpload(id,options) {
        this.me = $(id);
        var defaultOpt = {
            boxWidth:'115px',
            boxHeight:'85px'
        }
        this.preview = $('<div id="preview"><img src="img/tImg.png" class="img-responsive"  style=" 100%;height: 100%;" alt="" title=""> </div>');
        this.opts=$.extend(true, defaultOpt,{
        }, options);
        this.init();
        this.callback = this.opts.callback;
    
    }
    
    //定义原型方法
    DragImgUpload.prototype = {
        init:function () {
            this.me.append(this.preview);
            this.me.append(this.fileupload);
            this.cssInit();
            this.eventClickInit();
        },
        cssInit:function () {
            this.me.css({
                'width':this.opts.boxWidth,
                'height':this.opts.boxHeight,
                'border':'1px solid #cccccc',
                'padding':'10px',
                'cursor':'pointer',
                'border-radius':'5px'
            })
            this.preview.css({
                'height':'100%',
                'overflow':'hidden'
            })
    
        },
        onDragover:function (e) {
            e.stopPropagation();
            e.preventDefault();
            e.dataTransfer.dropEffect = 'copy';
        },
        onDrop:function (e) {
            var self = this;
            e.stopPropagation();
            e.preventDefault();
            var fileList = e.dataTransfer.files; //获取文件对象
    
            // do something upload
            if(fileList.length == 0){
                return false;
            }
            //检测文件是不是图片
            if(fileList[0].type.indexOf('image') === -1){
                alert("您拖的不是图片!");
                return false;
            }
    
            //拖拉图片到浏览器,可以实现预览功能
            var img = window.URL.createObjectURL(fileList[0]);
            var filename = fileList[0].name; //图片名称
            var filesize = Math.floor((fileList[0].size)/1024);
            if(filesize>500){
                alert("上传大小不能超过500K.");
                return false;
            }
    
            self.me.find("img").attr("src",img);
            self.me.find("img").attr("title",filename);
            if(this.callback){
                this.callback(fileList);
            }
        },
        eventClickInit:function () {
            var self = this;
            this.me.unbind().click(function () {
                self.createImageUploadDialog();
            })
            var dp = this.me[0];
            dp.addEventListener('dragover', function(e) {
                self.onDragover(e);
            });
            dp.addEventListener("drop", function(e) {
                self.onDrop(e);
            });
    
    
        },
        onChangeUploadFile:function () {
            var fileInput = this.fileInput;
            var files = fileInput.files;
            var file = files[0];
            var img = window.URL.createObjectURL(file);
            var filename = file.name;
    
            this.me.find("img").attr("src",img);
            this.me.find("img").attr("title",filename);
            if(this.callback){
                this.callback(files);
            }
    
        },
        createImageUploadDialog:function () {
            var fileInput = this.fileInput;
            if (!fileInput) {
                //创建临时input元素
                fileInput = document.createElement('input');
                //设置input type为文件类型
                fileInput.type = 'file';
                //设置文件name
                fileInput.name = 'ime-images';
                //允许上传多个文件
                fileInput.multiple = true;
                fileInput.onchange  = this.onChangeUploadFile.bind(this);
                this.fileInput = fileInput;
            }
            //触发点击input点击事件,弹出选择文件对话框
            fileInput.click();
        }
    
    
    
    
    }
  • 相关阅读:
    andorid UI事件 监听器
    12小时进制的时间输出的编辑代码
    Java运算符
    运算符的优先级
    UTF-8
    对ASCII的了解
    数组
    Java语法基础
    Java的跨平台
    指针的了解
  • 原文地址:https://www.cnblogs.com/leafarmyarmy/p/10431557.html
Copyright © 2020-2023  润新知