javascript前端實(shí)現(xiàn)多視頻上傳
本文實(shí)例為大家分享了javascript前端實(shí)現(xiàn)多視頻上傳的具體代碼,供大家參考,具體內(nèi)容如下
效果圖如下:
其實(shí)拿電視劇來(lái)舉例子更合適,比如要添加一個(gè)電視劇,而這部電視劇有很多集,而如果視頻格式是m3u8格式的話(huà),就和我的一樣了,就需要同時(shí)選中很多個(gè)文件,這個(gè)時(shí)候就需要用到這樣類(lèi)似的功能了。
代碼如下:
<style> .line { width: 80%; height: 1px; border-top: solid RGB(85, 175, 230) 1px; margin: 0 auto; } </style> <form enctype="multipart/form-data"> <div class="class"> <div class="form-group col-md-12 col-xs-12"> <label class="col-md-3 col-xs-12">請(qǐng)輸入課程名稱(chēng)</label> <div class="col-md-9 col-xs-12"> <input type="text" id="addClassName" class="form-control" name="addClassName[]"> </div> </div> <div class="form-group col-md-12 col-xs-12"> <label class="col-md-3 col-xs-12">請(qǐng)選擇視頻</label> <div class="col-md-9 col-xs-12"> <input onchange="selectVideos(this)" type="file" id="uploadVideos" name="file[]" multiple> </div> </div> <div class="form-group col-md-12 col-xs-12"> <label class="col-md-3 col-xs-12">請(qǐng)輸入第幾節(jié):</label> <div class="col-md-9 col-xs-12"> <input type="text" class="form-control" name="sort[]" placeholder="第1節(jié)就輸入1" required value=""> </div> </div> <div class="form-group col-md-12 col-xs-12"> <div class="line"></div> </div> </div> <div class="modal-footer" style="border-top:transparent;"> <button type="button" class="btn btn-info" onclick="addVideos()" style="margin-right: 700px">添加視頻 </button> <button type="button" onclick="addSubmit()" class="btn btn-primary">確認(rèn)提交</button> <button type="button" class="btn btn-default" data-dismiss="modal">取消</button> </div> </form> <script> var fileCountList = []; // 添加視頻按鈕 function addVideos() { let addDom = "<div class='form-group col-md-12 col-xs-12'><label class='col-md-3 col-xs-12'>請(qǐng)輸入課程名稱(chēng)</label><div class='col-md-9 col-xs-12'><input type='text' class='form-control' name='addClassName[]'> </div></div><div class='form-group col-md-12 col-xs-12'><label class='col-md-3 col-xs-12'>請(qǐng)選擇視頻</label><div class='col-md-9 col-xs-12'> <input type='file' name='file[]' multiple οnchange='selectVideos(this)'></div></div> <div class='form-group col-md-12 col-xs-12'><label class='col-md-3 col-xs-12'>請(qǐng)輸入第幾節(jié):</label><div class='col-md-9 col-xs-12'><input type='text' class='form-control' name='sort[]' placeholder='第1節(jié)就輸入1' required></div></div><div class='form-group col-md-12 col-xs-12'><div class='line'></div> </div>"; $('.class').append(addDom) } // 獲取選擇視頻的個(gè)數(shù)(因?yàn)槟壳拔覍?xiě)的是上傳m3u8文件,所以需要用這個(gè)來(lái)告訴后端每一集有多少個(gè)ts文件,如果是上傳mp4文件的話(huà),我猜是不用說(shuō)明這個(gè)的,不過(guò)我沒(méi)有嘗試過(guò)) function selectVideos(obj) { let fileCount = obj.files.length; fileCountList.push(fileCount); } // 確認(rèn)提交按鈕 function addSubmit() { // 在使用FormData提交數(shù)據(jù)的時(shí)候,需要用原生的js,不能使用jQuery,如果要使用jQuery獲取的話(huà),需要將jQuery獲取到的對(duì)象轉(zhuǎn)換成原生的DOM節(jié)點(diǎn),具體的可以看我之前的一篇文章 // 這個(gè)時(shí)候如果使用console.log(formData)是看不到數(shù)據(jù)的,但是不要懷疑,按照下面的操作仍然是可以把數(shù)據(jù)提交上去的 let formData = new FormData(document.getElementById('uploadVideosForm')); // 向formData中添加數(shù)據(jù) formData.append('fileCountList',fileCountList); $.ajax({ url: '上傳視頻的路徑', method: 'post', processData: false, contentType: false, dataType: "json", data: formData, success: function (data) { console.log(data) } }) } </script>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于js中removeEventListener取消事件監(jiān)聽(tīng)的坑
許多入前端不久的人都會(huì)遇到removeEventListener無(wú)法清除監(jiān)聽(tīng)的情況,下面這篇文章主要給大家介紹了關(guān)于js中removeEventListener取消事件監(jiān)聽(tīng)的坑,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09JavaScript數(shù)據(jù)結(jié)構(gòu)之鏈表各種操作詳解
數(shù)據(jù)結(jié)構(gòu)是一種有效處理大量數(shù)據(jù)的手段,了解它的結(jié)構(gòu)和組成為我們提供了更有效的工具來(lái)設(shè)計(jì)與某些問(wèn)題相關(guān)的產(chǎn)品。這次我們將進(jìn)行鏈表介紹,回顧它的特點(diǎn)和用途2022-10-10微信小程序之?dāng)?shù)據(jù)緩存的實(shí)例詳解
這篇文章主要介紹了微信小程序之?dāng)?shù)據(jù)緩存的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家掌握這部分內(nèi)容,需要的朋友可以參考下2017-09-09js自執(zhí)行函數(shù)的幾種不同寫(xiě)法的比較
js自執(zhí)行函數(shù)的幾種不同寫(xiě)法的比較,需要的朋友可以參考下2012-08-08JS如何通過(guò)視頻鏈接獲取視頻時(shí)長(zhǎng)
這篇文章主要介紹了JS如何通過(guò)視頻鏈接獲取視頻時(shí)長(zhǎng),這個(gè)函數(shù)用提供的URL創(chuàng)建一個(gè)新的Video元素,并在loadedmetadata事件被觸發(fā)時(shí)解析一個(gè)帶有視頻持續(xù)時(shí)間的Promise,感興趣的朋友跟隨小編一起看看吧2024-06-06IE8的JavaScript點(diǎn)擊事件(onclick)不兼容的解決方法
這篇文章主要介紹了IE8的JavaScript點(diǎn)擊事件(onclick)不兼容的解決方法,大家參考使用吧2013-11-11js實(shí)現(xiàn)4個(gè)方向滾動(dòng)的球
本文主要介紹了js實(shí)現(xiàn)4個(gè)方向滾動(dòng)球的實(shí)例,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03