HTML中簡單實現文件的一鍵上傳的操作


在html中實現文件上傳的方式為form表單中使用input type="file"控件,但是這個控件往往顯示不是美觀,影響頁面效果,這時候,一般就通過一鍵上傳的操作,來實現點擊一個按鈕上傳文件.

原理:

設置一個具有file上傳文件框的form表單,並且設置style表單為不顯示的,同時呢,要對表單中的input控件進行onchange事件監聽,當input控件改變的時候,就觸發表單提交的操作.設置一個上傳文件的按鈕,當點擊按鈕時候,觸發表單中的input空間的click事件,來進行文件的瀏覽.這樣一來,當選擇好文件后,就自動提交了.

因為表單提交的話,就會自動刷新當前頁面,因此采用,在頁面中添加一個隱藏的<iframe>控件,並且將file提交的表單form中的target屬性指向iframe控件,這樣一來,就實現了當前頁面無刷新的一鍵上傳的操作.

代碼為:(注:jq文件需要自己引入)

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title>文件一鍵上傳</title>
        <script src="js/jquery-1.8.3.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
            $(function() {
                //當點擊"一鍵上傳"按鈕的時候,觸發表單中的瀏覽文件的操作
                $("#hehe").click(function() {
                    $("#uploadfile").click();
                })
                //當選擇好上傳文件后,執行提交表單的操作
                $("#uploadfile").change(function() {
                    alert("上傳文件");
                    $("#form1").submit();
                })
            })
        </script>
    </head>

    <body>
        <input type="button" id="hehe" value="上傳文件" />
        <form style="display: none;" id="form1" action="#" method="post" enctype="multipart/form-data" target="myframe">
            <input type="file" name="uploadfile" id="uploadfile" />
        </form>
        <iframe style="display: none;" id="myframe"/>
    </body>

</html>

當點擊上傳文件按鈕的時候,自動彈出選擇文件的頁面

image

在后台頁面進行操作,而不是在當前頁面刷新

image

實際開發中,往往采用的是jquery.ocupload的js插件進行一件上傳的操作;

官網:http://code.google.com/p/ocupload/

實際操作js代碼示例:

$("#button-import").upload({  
    action: '實際開發中的提交位置',  
    onSelect: function (self, element) {  
    this.autoSubmit = false;  //關閉自動提交,方便后面進行文件類型判斷
    var filename=this.filename();//設定文件名
                var flag1= filename.endsWith(".xls");
                var flag2= filename.endsWith(".xlsx");
                if(flag1||flag2){//判斷是否是所需要的文件類型,這里使用的是excel文件
                      this.submit();
                }else{
                      alert("提示請選擇正確的文件");
                }
                        
                },  
       onComplete: function (data, self, element) {  
               alert("提示文件上傳成功");//當上傳成功后,提示
         } 
});

就是這么簡單,具體就不演示了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM