Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
TML實(shí)現(xiàn)文件夾的上傳和下載,前端如何用HTML5實(shí)現(xiàn)分片上傳GB級(jí)大文件,網(wǎng)頁(yè)中實(shí)現(xiàn)文件上傳下載的三種解決方案(推薦),HTML5實(shí)現(xiàn)文件批量上傳組件,JQUERY 實(shí)現(xiàn)文件夾上傳(保留目錄結(jié)構(gòu)),B/S大文件上傳支持?jǐn)帱c(diǎn)上傳,WebService 大文件上傳,斷點(diǎn)續(xù)傳分片,HTML+AJAX實(shí)現(xiàn)上傳大文件問(wèn)題,用HTML實(shí)現(xiàn)本地文件的上傳,HTML5實(shí)現(xiàn)大文件上傳,HTML5實(shí)現(xiàn)大文件分片上傳思路,利用HTML5分片上傳超大文件思路,
WEBUPLOADER 支持 超大上G,多附件上傳,JS 大文件分割/分片上傳,
百度WEBUPLOADER上傳視頻等大文件,WEBUPLOAD組件實(shí)現(xiàn)文件上傳功能和下載功能,JS大文件切片上傳,斷點(diǎn)續(xù)傳實(shí)現(xiàn)DEMO,前端上傳大文件的解決方案,前端上傳大文件處理(切片、斷點(diǎn)續(xù)傳),前端大文件上傳優(yōu)化方案——分片上傳,vue大文件上傳解決方案,vue大文件上傳解決方案10G,vue大文件上傳解決方案50G,vue大文件上傳解決方案100G,html5如何實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,
java如何實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,SpringBoot如何實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,SpringMVC如何實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,SpringCloud如何實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,
webuploader如何實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,百度webuploader如何實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,html5實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,vue如何實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,前端如何實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,JavaScript如何實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳、秒傳,
html5大文件斷點(diǎn)續(xù)傳、秒傳解決方案,html5大文件斷點(diǎn)續(xù)傳、加密上傳解決方案,html5大文件斷點(diǎn)續(xù)傳、加密存儲(chǔ)解決方案,html5大文件斷點(diǎn)續(xù)傳分片解決方案,html5大文件斷點(diǎn)續(xù)傳分塊解決方案,html5大文件斷點(diǎn)續(xù)傳分割解決方案,html5大文件斷點(diǎn)續(xù)傳切割解決方案,
后端我們公司項(xiàng)目組選的是JAVA,因?yàn)楣居凶约旱漠a(chǎn)品,所以直接使用就行了,針對(duì)客戶需求這塊是進(jìn)行擴(kuò)展。
客戶這邊實(shí)際上要傳的文件單個(gè)大小就有50G左右,所以需要支持?jǐn)帱c(diǎn)續(xù)傳和分片上傳,并且要支持多線程上傳,能夠充分利用帶寬資源。
之前在網(wǎng)上找過(guò)相關(guān)的資料,論壇里面也有網(wǎng)友交流過(guò),還加過(guò)很多QQ群和微信群,但是結(jié)果都不太令人滿意。
技術(shù)選型的話用的是jquery,也是一個(gè)企業(yè)內(nèi)網(wǎng)系統(tǒng),用的是之前公司的框架,只是進(jìn)行功能擴(kuò)展
分片網(wǎng)上討論的很多,基本上全部都是用的HTML5的API,這個(gè)方案也不是不能用,但是在IE下面就不行了,兼容性差了點(diǎn),并且也不能進(jìn)行擴(kuò)展,不能進(jìn)行二次開(kāi)發(fā),限制性非常大,我們技術(shù)同事提的要求是需要提供產(chǎn)品完整源代碼,
網(wǎng)上的文章全部都沒(méi)有提供文件夾上傳和續(xù)傳的代碼,也沒(méi)有提供數(shù)據(jù)庫(kù)操作的代碼,
另外這塊我們是要求必須提供產(chǎn)品完整源代碼,因?yàn)楹竺嫖覀冃枰砸褋?lái)維護(hù),同時(shí)是要求能夠自主可控的
研發(fā)部門的同事調(diào)研過(guò)百度的webuploader這個(gè)組件,發(fā)現(xiàn)他實(shí)際上就是對(duì)Flash和HTML5進(jìn)行了一個(gè)封裝,本質(zhì)還是調(diào)的HTML5的API,之前在項(xiàng)目中也用過(guò),嘗試過(guò),但是最終都不太滿意,一個(gè)是兼容性非常差,說(shuō)的是兼容IE,但是在IE用的是Flash,在很多用戶的電腦上用不了,卡頓崩潰發(fā)生的太頻繁,文件上傳的數(shù)量一多比如幾千個(gè),前端頁(yè)面就開(kāi)始卡了,用戶體驗(yàn)非常差。這些問(wèn)題研發(fā)部的同事都向百度反應(yīng)過(guò),但是百度webuploader那邊一直沒(méi)人回,基本上沒(méi)人管,領(lǐng)導(dǎo)說(shuō)要求付費(fèi)提供技術(shù)支持,那邊也是沒(méi)人回,聯(lián)系不上他們?nèi)魏稳恕?/p>
webuploader這邊連個(gè)開(kāi)發(fā)人員都聯(lián)系不到,這個(gè)是怎么回事?
用戶上傳的文件比較大,有20G左右,直接用HTML傳的話容易失敗,服務(wù)器也容易出錯(cuò),需要分片,分塊,分割上傳。也就是將一個(gè)大的文件分成若干個(gè)小文件塊來(lái)上傳,另外就是需要實(shí)現(xiàn)秒傳功能和防重復(fù)功能,秒傳就是用戶如果上傳過(guò)這個(gè)文件,那么直接在數(shù)據(jù)庫(kù)中查找記錄就行了,不用再上傳一次,節(jié)省時(shí)間,實(shí)現(xiàn)的思路是對(duì)文件做MD5計(jì)算,將MD5值保存到數(shù)據(jù)庫(kù),算法可以用MD5,或者CRC,或者SHA1,這個(gè)隨便哪個(gè)算法都行。
切片的話還有一點(diǎn)就是在服務(wù)器上合并,一個(gè)文件的所有分片數(shù)據(jù)上傳完后需要在服務(wù)器端進(jìn)行合并操作。
視頻教程:https://www.ixigua.com/7227314770696012322
導(dǎo)入項(xiàng)目:
導(dǎo)入到Eclipse:http://www.ncmem.com/doc/view.aspx?id=9da9c7c2b91b40b7b09768eeb282e647
導(dǎo)入到IDEA:http://www.ncmem.com/doc/view.aspx?id=9fee385dfc0742448b56679420f22162
springboot統(tǒng)一配置:http://www.ncmem.com/doc/view.aspx?id=7768eec9284b48e3abe08f032f554ea2
下載示例:
https://gitee.com/xproer/up6-jsp-eclipse/tree/6.5.40/
工程
NOSQL
NOSQL示例不需要任何配置,可以直接訪問(wèn)測(cè)試
創(chuàng)建數(shù)據(jù)表
選擇對(duì)應(yīng)的數(shù)據(jù)表腳本,這里以SQL為例
修改數(shù)據(jù)庫(kù)連接信息
訪問(wèn)頁(yè)面進(jìn)行測(cè)試
文件存儲(chǔ)路徑
up6/upload/年/月/日/guid/filename
相關(guān)問(wèn)題:
1.javax.servlet.http.HttpServlet錯(cuò)誤
2.項(xiàng)目無(wú)法發(fā)布到tomcat
3.md5計(jì)算完畢后卡住
4.服務(wù)器找不到config.json文件
相關(guān)參考:
文件保存位置
源碼工程文檔:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra
源碼報(bào)價(jià)單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwoiul8gl
OEM版報(bào)價(jià)單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwuzp4W0a
產(chǎn)品源代碼:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc
授權(quán)生成器:https://drive.weixin.qq.com/s?k=ACoAYgezAAwTIcFph1
換流的作用就是將我們的字節(jié)流轉(zhuǎn)換成字符流
字節(jié)流是可以處理一切內(nèi)容的,包括圖片,音頻,視頻,也包括純文本,在很多系統(tǒng)和框架的底層返回給我們的都是字節(jié)流(有時(shí)候我們使用字節(jié)流處理并不方便,這就是我們?yōu)槭裁匆D(zhuǎn)換字符流的原因)
System.in,System.out都是字節(jié)流,因?yàn)槲覀冩I盤輸入還是輸出的都是字符串,所以我們可以對(duì)它進(jìn)行轉(zhuǎn)換。
在我們的底層,如果是純文本的話就涉及到一個(gè)東西是字符集。將字節(jié)轉(zhuǎn)成字符叫做解碼(在解碼的過(guò)程中就涉及到字符集的問(wèn)題,如果工程的字符集跟源頭(文件)的字符集不統(tǒng)一就會(huì)出現(xiàn)亂碼),所以這個(gè)時(shí)候我們最好可以指定字符集
從字節(jié)流到字符流的轉(zhuǎn)換
只要我們看見(jiàn)Reader都建議加一個(gè)BufferedReader
將寫入的字符編碼為字節(jié)
講一下什么使用字節(jié)流,什么時(shí)候使用字符流
其實(shí)底層都是字節(jié),我們使用字符是為了處理一些文本和字符串提高性能字符流處理的單元為2個(gè)字節(jié)的Unicode字符,分別操作字符、字符數(shù)組或字符串,而字節(jié)流處理單元為1個(gè)字節(jié),操作字節(jié)和字節(jié)數(shù)組。所以字符流是由Java虛擬機(jī)將字節(jié)轉(zhuǎn)化為2個(gè)字節(jié)的Unicode字符為單位的字符而成的,所以它對(duì)多國(guó)語(yǔ)言支持性比較好!如果是音頻文件、圖片、歌曲,就用字節(jié)流好點(diǎn),如果是關(guān)系到中文(文本)的,用字符流好點(diǎn) 所有文件的儲(chǔ)存是都是字節(jié)(byte)的儲(chǔ)存,在磁盤上保留的并不是文件的字符而是先把字符編碼成字節(jié),再儲(chǔ)存這些字節(jié)到磁盤。在讀取文件(特別是文本文件)時(shí),也是一個(gè)字節(jié)一個(gè)字節(jié)地讀取以形成字節(jié)序列
字節(jié)流和字符流的使用:
Java IO流中提供了兩種用于將字節(jié)流轉(zhuǎn)換為字符流的轉(zhuǎn)換流。其中InputStreamReader用于將字節(jié)輸入流轉(zhuǎn)換為字符輸入流,其中OutputStreamWriter用于將字節(jié)輸出流轉(zhuǎn)換為字符輸出流。使用轉(zhuǎn)換流可以在一定程度上避免亂碼,還可以指定輸入輸出所使用的字符集
講一下緩存流和轉(zhuǎn)換流的結(jié)合,看見(jiàn)Reader我們就可以使用緩存流提高性能
使用轉(zhuǎn)換流實(shí)現(xiàn)字節(jié)到字符的轉(zhuǎn)換以及輸入和輸出
· 節(jié)點(diǎn)流:可以從或向一個(gè)特定的地方(節(jié)點(diǎn))讀寫數(shù)據(jù)。如FileReader.
· 處理流:是對(duì)一個(gè)已存在的流的連接和封裝,通過(guò)所封裝的流的功能調(diào)用實(shí)現(xiàn)數(shù)據(jù)讀寫。如BufferedReader.處理流的構(gòu)造方法總是要帶一個(gè)其他的流對(duì)象做參數(shù)。一個(gè)流對(duì)象經(jīng)過(guò)其他流的多次包裝,稱為流的鏈接。
講一下什么是節(jié)點(diǎn)流
字符流和字節(jié)流就可以叫做節(jié)點(diǎn)流
出現(xiàn)亂碼的原因有兩種:
1.字節(jié)數(shù)不夠出現(xiàn)亂碼
2.字符集不統(tǒng)一出現(xiàn)亂碼
html文件的下載,如何使用字節(jié)流,如何使用轉(zhuǎn)換流
在java中文件的傳輸其實(shí)就是靠流來(lái)實(shí)現(xiàn)的,網(wǎng)絡(luò)流也是屬于字節(jié)流,所以我們先使用字節(jié)流
我覺(jué)得寫的時(shí)候應(yīng)該是全部都寫出來(lái)才寫的,具體debug才知道,我這里就不弄了
為什么讀取的時(shí)候亂碼,寫入的時(shí)候不亂碼
忽然一下子自己就懂了,總之寫入的時(shí)候只要講字符集設(shè)置的和源頭的文件一致就可以了
面我推薦幾款工具
HTML App Build 工具是一款可以將 HTML 網(wǎng)頁(yè)轉(zhuǎn)換為 EXE 可執(zhí)行文件的軟件。它可以讓您使用 HTML、JavaScript 和 CSS 等網(wǎng)頁(yè)技術(shù)開(kāi)發(fā)跨平臺(tái)的移動(dòng)應(yīng)用
使用 HTML App Build 工具的步驟如下:
1. 在您的電腦上安裝 HTML App Build 工具
2. 打開(kāi) HTML App Build 工具,選擇“文件”-> “新建”->“項(xiàng)目”,輸入項(xiàng)目名稱和保存路徑,選擇“5+ App”模板。
3. 編寫您的 HTML、JavaScript 和 CSS 代碼,或者使用 HBuilderX 內(nèi)置的 HTML5+ API 和 MUI 框架來(lái)快速開(kāi)發(fā)移動(dòng)應(yīng)用。
4. 在 HTML App Build 工具中選擇“運(yùn)行”-> “運(yùn)行到手機(jī)或模擬器”,查看您的應(yīng)用在真機(jī)或模擬器上的效果。
5. 在 HTML App Build 工具中選擇“云打包”-> “打包設(shè)置”,設(shè)置應(yīng)用的圖標(biāo)、名稱、版本號(hào)等信息,然后選擇“開(kāi)始云打包”。
6. 等待云打包完成后,下載應(yīng)用的 EXE 文件,或者掃描二維碼在手機(jī)上安裝應(yīng)用。
HEX 工具是一款可以將 HTML 網(wǎng)頁(yè)轉(zhuǎn)換為 EXE 或 APP 的軟件。它可以讓您使用 HTML等網(wǎng)頁(yè)技術(shù)開(kāi)發(fā)桌面或移動(dòng)應(yīng)用。
使用 HEX 工具將 HTML 變?yōu)?EXE 或 APP 的步驟如下:
1. 在您的電腦上安裝 HEX 工具。
2.打開(kāi)HEX 工具,選擇“新建項(xiàng)目”,輸入項(xiàng)目名稱和保存路徑,選擇“HTML”模式。
3.編寫您的 HTML ,JavaScript 和 CSS 代碼,或者使用現(xiàn)有的 HTML 網(wǎng)頁(yè)文件。
4.在HEX 工具中選擇“發(fā)布項(xiàng)目”,設(shè)置您的應(yīng)用的圖標(biāo)、名稱、版本號(hào)等信息,然后選擇“生成 EXE”或“生成 APP”。
5.等待生成完成后,您就可以得到您的應(yīng)用的 EXE 或 APP 文件,可以在電腦或手機(jī)上運(yùn)行。
這是詳細(xì)的使用過(guò)程:HTML杞? EXE錛寃eb欏圭洰鎵撳寘 exe鐨勮В鍐蟲柟妗堬紙1錛夛細(xì)HEX - 鐭ヤ箮
HTML Compiler是一款可以將HTML文件轉(zhuǎn)換為可執(zhí)行文件的工具。您可以使用它來(lái)制作獨(dú)立的網(wǎng)頁(yè)應(yīng)用程序或演示文稿。要使用HTML Compiler工具,您需要按照以下步驟操作:
1. 下載并安裝HTML Compiler2021直裝版,或者從官網(wǎng)下載最新版本。
2. 打開(kāi)HTML Compiler,選擇“新建項(xiàng)目”或“打開(kāi)項(xiàng)目”,并選擇您要編譯的HTML文件或文件夾。
3. 在項(xiàng)目設(shè)置中,您可以修改應(yīng)用程序的名稱、圖標(biāo)、版本、版權(quán)等信息,以及選擇編譯選項(xiàng)和輸出路徑。
4. 點(diǎn)擊“編譯”按鈕,等待編譯完成,您就可以在輸出路徑中找到生成的可執(zhí)行文件了。
這是關(guān)于html compiler直裝版的詳細(xì)教程HTML Compiler2021直裝版 附安裝教程及特點(diǎn) - 嗶哩嗶哩
如果您只是想編輯和運(yùn)行HTML文件,而不需要編譯成可執(zhí)行文件,您可以使用其他的HTML編輯器,例如VS Code、HBuilderX、Online HTML Editor等。這些編輯器都提供了語(yǔ)法高亮、代碼提示、實(shí)時(shí)預(yù)覽等功能,可以幫助您快速編寫和測(cè)試HTML代碼。
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。