jQuery.filedrop圖片拖動上傳文件的學習筆記

目前正在寫測試平臺,涉及到了文件上傳的功能,在網(wǎng)上找到了一個比較炫的方式,就是用jQuery.filedrop實現(xiàn)拖動文件上傳。

先看個做成后的演示圖:


1.png

主要的使用方式就是將需要上傳的文件拖動到上傳區(qū)域,松手,就可以上傳文件了。

下面是主要的實現(xiàn)代碼:

<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<title>功能測試頁</title>
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="css/styles.css" rel="stylesheet" />
<script type="text/javascript" src="js/jquery-1.9.0.min.js"></script>
<script type="text/javascript" src="js/jquery.filedrop.js"></script>
<script type="text/javascript" src="js/filedrop_script.js"></script>
<script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script>
</head>

<script type="text/javascript">
自己的函數(shù)實現(xiàn),大家自己根據(jù)需求寫吧
</script>
<body>
    <div class="panel panel-warning" id="dropbox" style="margin:20px; min-height:200px;" >
        <div class="panel-heading">
            <h3 class="panel-title">上傳測試用例</h3>
        </div>
        <div class="panel-body" style="text-align:center;">拖動測試用例文件到這里開始測試</div>
        <div class="panel-body" style="text-align:center;" id="uploadFileNames"></div>
        <div id="upload_loading_layout" class="layout" style="text-align:center;display: none;"><img src="images/loading.gif" /></div>
    </div>
    <button id="startTestBtn" type="button" class="btn btn-info" onClick="runTest('')" style="margin:20px;">開始測試</button>
    <button id="clearFilesBtn" type="button" class="btn btn-danger" onClick="deleteUploadFiles('')">清空上傳文件</button>
    <div class="panel panel-info" id="resultbox" style="margin:20px;min-height:200px;" >
        <div class="panel-heading">
            <h3 class="panel-title">測試結(jié)果</h3>
        </div>
        <div id="result_layout" class="panel-body"></div>
        <div id="run_loading_layout" class="layout" style="text-align:center;display: none;"><img src="images/loading.gif" /></div>
    </div>
</body>

從上面的代碼中可以看到我們用了一個自定義的文件名字是filedrop_script.js,這個就是具體的filedrop實現(xiàn):

$(function(){
    
    var dropbox = $('#dropbox');
    
    dropbox.filedrop({
        // The name of the $_FILES entry:
        paramname:'pic',
        
        // 最多傳輸文件的個數(shù)
        maxfiles: 5,
        // 最大傳輸文件的大小,單位是M
        maxfilesize: 2,
        // 文件上傳對應的服務url
        url: 'uploadFiles',
        
        // 文件上傳開始時的回調(diào)
        uploadStarted:function(i, file, len) {
            document.getElementById("upload_loading_layout").style.display = "block";
        },
        
        // 文件上傳過程中的回調(diào)
        progressUpdated: function(i, file, progress) {
            document.getElementById("upload_loading_layout").style.display = "block";
            //alert(progress);
        },
        
        // 文件上傳結(jié)束時的回調(diào)
        uploadFinished:function(i,file,response) {
            document.getElementById("upload_loading_layout").style.display = "none";
        },
        
        error: function(err, file) {
            switch(err) {
                case 'BrowserNotSupported':
                    alert('Your browser does not support HTML5 file uploads!');
                    break;
                case 'TooManyFiles':
                    alert('Too many files! Please select 5 at most! (configurable)');
                    break;
                case 'FileTooLarge':
                    alert(file.name+' is too large! Please upload files up to 2mb (configurable).');
                    break;
                case 'FileTypeNotAllowed':
                    alert('File type not allowed!');
                    break;
                case 'FileExtensionNotAllowed':
                    alert('File extension not allowed!!');
                    break;
                default:
                    break;
            }
        },
        
        //allowedfileextensions: ['.jmx','.csv'],
        //allowedfiletypes: ['image/jpeg','image/png','image/gif'],
        
        // 文件上傳前的回調(diào)
        beforeEach: function(file) {
            for(var item in fileName) {
                if (fileName[item].indexOf(".jmx") != -1 && file.name.indexOf(".jmx") != -1) {
                    alert("您僅能上傳一個JMX文件!")
                    return false;
                }
                if (fileName[item].indexOf(".csv") != -1 && file.name.indexOf(".csv") != -1) {
                    alert("您僅能上傳一個CSV文件!")
                    return false;
                }
            }
        }
    });

只要完成了上面兩步,再實現(xiàn)服務端的接收功能,就可以完成拖動上傳的功能了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,281評論 25 708
  • (三)美食篇 到一個地方,除了要欣賞沿途美景外,還有享受當?shù)厣嗉馍系拿朗场_@樣的旅行才算上比...
    秋牛閱讀 289評論 3 1
  • 拖著工作后疲憊不堪的身體開啟我的沙漠之旅。 第二天上午睡眼惺忪的踏上沙地,滿眼黃沙心里卻美美的,不同于三月下?lián)P州的...
    不美千樹閱讀 399評論 0 2
  • 2012年在我人生最低谷的時候,我才真正體會到同事的關愛,那一年嘗到的人生最苦澀的變故,是我的同事們我的兄弟姐妹們...
    陸兒2017閱讀 263評論 0 0
  • 詩歌、葉孤騰 年輕人的心情總是容易起伏 有時為往事惆悵、有時為現(xiàn)實擔憂 今日和幾個友人連喝兩場酒 苦澀的酒混著苦澀...
    葉孤騰閱讀 414評論 0 0

友情鏈接更多精彩內(nèi)容