日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java web文件夹_JAVA WEB项目文件夹上传下载解决方案

發(fā)布時間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java web文件夹_JAVA WEB项目文件夹上传下载解决方案 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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

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

上傳文件實體類:

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

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

文件初始化部分

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

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

第三步:獲取當前是第幾個分塊,計算文件的最后偏移量

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

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

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

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

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

文件夾掃描類

存儲路徑生成類

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

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

后端代碼邏輯大部分是相同的,目前能夠支持MySQL,Oracle,SQL。在使用前需要配置一下數(shù)據(jù)庫,可以參考我寫的這篇文章:http://blog.ncmem.com/wordpress/2019/08/07/java超大文件上傳與下載/

歡迎入群一起討論“374992201”

總結

以上是生活随笔為你收集整理的java web文件夹_JAVA WEB项目文件夹上传下载解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。