亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于JavaScript實(shí)現(xiàn)大文件上傳后端代碼實(shí)例

 更新時(shí)間:2020年08月18日 08:36:29   作者:松鼠的博客  
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)大文件上傳后端代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這里只寫后端的代碼,基本的思想就是,前端將文件分片,然后每次訪問上傳接口的時(shí)候,向后端傳入?yún)?shù):當(dāng)前為第幾塊文件,和分片總數(shù)

下面直接貼代碼吧,一些難懂的我大部分都加上注釋了:

上傳文件實(shí)體類:

看得出來,實(shí)體類中已經(jīng)有很多我們需要的功能了,還有實(shí)用的屬性。如MD5秒傳的信息。

首先是文件數(shù)據(jù)接收邏輯,負(fù)責(zé)接收控件上傳的文件塊數(shù)據(jù),然后寫到服務(wù)器的文件中??丶呀?jīng)提供了塊的索引,大小,MD5和長度信息,我們可以根據(jù)需要來靈活進(jìn)行處理,也可以將文件塊的數(shù)據(jù)保存到分布式存儲系統(tǒng)中。

文件初始化部分

第一步:獲取RandomAccessFile,隨機(jī)訪問文件類的對象

第二步:調(diào)用RandomAccessFile的getChannel()方法,打開文件通道 FileChannel,這塊邏輯可以優(yōu)化,如果以后有分布式存儲需求,可以改為分布式存儲,減輕單臺服務(wù)器的壓力。

第三步:獲取當(dāng)前是第幾個(gè)分塊,計(jì)算文件的最后偏移量

第四步:獲取當(dāng)前文件分塊的字節(jié)數(shù)組,用于獲取文件字節(jié)長度

第五步:使用文件通道FileChannel類的 map()方法創(chuàng)建直接字節(jié)緩沖器MappedByteBuffer

第六步:將分塊的字節(jié)數(shù)組放入到當(dāng)前位置的緩沖區(qū)內(nèi)mappedByteBuffer.put(byte[] b);

第七步:釋放緩沖區(qū)

第八步:檢查文件是否全部完成上傳

文件夾掃描類

存儲路徑生成類

好了,到此就全部結(jié)束了,如果有疑問或批評,歡迎評論和私信,我們一起成長一起學(xué)習(xí)。

最后放一張實(shí)現(xiàn)的效果圖

后端代碼邏輯大部分是相同的,目前能夠支持MySQL,Oracle,SQL。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • javascript在當(dāng)前窗口關(guān)閉前檢測窗口是否關(guān)閉

    javascript在當(dāng)前窗口關(guān)閉前檢測窗口是否關(guān)閉

    檢測窗口是否關(guān)閉,在當(dāng)前窗口關(guān)閉前使用js做到這一點(diǎn),下面是具體的實(shí)現(xiàn),感興趣的朋友可以參考下
    2014-09-09
  • electron版本升級的簡單步驟

    electron版本升級的簡單步驟

    Electron是一款流行的跨平臺框架,用于構(gòu)建桌面應(yīng)用程序,它基于Web技術(shù)棧,結(jié)合了Chromium和Node.js,可以使用HTML、CSS和JavaScript開發(fā)跨平臺的應(yīng)用程序,本文將介紹electron版本升級的簡單步驟,并提供相應(yīng)的源代碼示例,需要的朋友可以參考下
    2024-05-05
  • 使用JavaScript和CSS實(shí)現(xiàn)文本隔行換色的方法

    使用JavaScript和CSS實(shí)現(xiàn)文本隔行換色的方法

    這篇文章主要介紹了使用JavaScript和CSS實(shí)現(xiàn)文本隔行換色的方法,當(dāng)然最普通的也可以單純用CSS實(shí)現(xiàn),需要的朋友可以參考下
    2015-11-11
  • JavaScript?數(shù)據(jù)結(jié)構(gòu)之集合創(chuàng)建(1)

    JavaScript?數(shù)據(jù)結(jié)構(gòu)之集合創(chuàng)建(1)

    這篇文章主要介紹了JavaScript?數(shù)據(jù)結(jié)構(gòu)之集合創(chuàng)建,集合是由一組無序且唯一的元素組成。數(shù)據(jù)結(jié)構(gòu)中的集合,對應(yīng)的是數(shù)學(xué)概念當(dāng)中的有限集合;下文詳細(xì)介紹需要的小伙伴可以參考一下
    2022-04-04
  • js數(shù)組的操作詳解

    js數(shù)組的操作詳解

    用js有很久了,但都沒有深究過js的數(shù)組形式。偶爾用用也就是簡單的string.split(char)。對于字符的處理很多情況下需要用到數(shù)組
    2013-03-03
  • JavaScript數(shù)據(jù)類型轉(zhuǎn)換詳解(推薦)

    JavaScript數(shù)據(jù)類型轉(zhuǎn)換詳解(推薦)

    眾所周知JavaScript是一門弱類型(語言,即變量的類型是不確定的。所以下面這篇文章主要給大家介紹了關(guān)于JavaScript數(shù)據(jù)類型轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下
    2021-05-05
  • 淺談toLowerCase和toLocaleLowerCase的區(qū)別

    淺談toLowerCase和toLocaleLowerCase的區(qū)別

    下面小編就為大家?guī)硪黄獪\談toLowerCase和toLocaleLowerCase的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • js實(shí)現(xiàn)tab切換效果實(shí)例

    js實(shí)現(xiàn)tab切換效果實(shí)例

    這篇文章主要介紹了js實(shí)現(xiàn)的tab標(biāo)簽切換效果,功能非常簡單,實(shí)現(xiàn)了點(diǎn)擊切換的效果,推薦給大家,有需要的小伙伴可以參考下。
    2015-09-09
  • pageGroup.js實(shí)現(xiàn)分頁功能

    pageGroup.js實(shí)現(xiàn)分頁功能

    這篇文章主要為大家詳細(xì)介紹了pageGroup.js實(shí)現(xiàn)分頁功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • js中Generator函數(shù)的深入講解

    js中Generator函數(shù)的深入講解

    這篇文章主要給大家介紹了關(guān)于js中Generator函數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Javascript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評論