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 一区二区3区免费视频,日韩在线a视频免费播放,91精品免费久久久久久久久

          整合營銷服務商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          HTML實現(xiàn)文件夾的上傳和下載

          TML實現(xiàn)文件夾的上傳和下載,前端如何用HTML5實現(xiàn)分片上傳GB級大文件,網(wǎng)頁中實現(xiàn)文件上傳下載的三種解決方案(推薦),HTML5實現(xiàn)文件批量上傳組件,JQUERY 實現(xiàn)文件夾上傳(保留目錄結構),B/S大文件上傳支持斷點上傳,WebService 大文件上傳,斷點續(xù)傳分片,HTML+AJAX實現(xiàn)上傳大文件問題,用HTML實現(xiàn)本地文件的上傳,HTML5實現(xiàn)大文件上傳,HTML5實現(xiàn)大文件分片上傳思路,利用HTML5分片上傳超大文件思路,

          WEBUPLOADER 支持 超大上G,多附件上傳,JS 大文件分割/分片上傳,

          百度WEBUPLOADER上傳視頻等大文件,WEBUPLOAD組件實現(xiàn)文件上傳功能和下載功能,JS大文件切片上傳,斷點續(xù)傳實現(xiàn)DEMO,前端上傳大文件的解決方案,前端上傳大文件處理(切片、斷點續(xù)傳),前端大文件上傳優(yōu)化方案——分片上傳,vue大文件上傳解決方案,vue大文件上傳解決方案10G,vue大文件上傳解決方案50G,vue大文件上傳解決方案100G,html5如何實現(xiàn)大文件斷點續(xù)傳、秒傳,

          java如何實現(xiàn)大文件斷點續(xù)傳、秒傳,SpringBoot如何實現(xiàn)大文件斷點續(xù)傳、秒傳,SpringMVC如何實現(xiàn)大文件斷點續(xù)傳、秒傳,SpringCloud如何實現(xiàn)大文件斷點續(xù)傳、秒傳,

          webuploader如何實現(xiàn)大文件斷點續(xù)傳、秒傳,百度webuploader如何實現(xiàn)大文件斷點續(xù)傳、秒傳,html5實現(xiàn)大文件斷點續(xù)傳、秒傳,vue如何實現(xiàn)大文件斷點續(xù)傳、秒傳,前端如何實現(xiàn)大文件斷點續(xù)傳、秒傳,JavaScript如何實現(xiàn)大文件斷點續(xù)傳、秒傳,

          html5大文件斷點續(xù)傳、秒傳解決方案,html5大文件斷點續(xù)傳、加密上傳解決方案,html5大文件斷點續(xù)傳、加密存儲解決方案,html5大文件斷點續(xù)傳分片解決方案,html5大文件斷點續(xù)傳分塊解決方案,html5大文件斷點續(xù)傳分割解決方案,html5大文件斷點續(xù)傳切割解決方案,

          后端我們公司項目組選的是JAVA,因為公司有自己的產(chǎn)品,所以直接使用就行了,針對客戶需求這塊是進行擴展。

          客戶這邊實際上要傳的文件單個大小就有50G左右,所以需要支持斷點續(xù)傳和分片上傳,并且要支持多線程上傳,能夠充分利用帶寬資源。

          之前在網(wǎng)上找過相關的資料,論壇里面也有網(wǎng)友交流過,還加過很多QQ群和微信群,但是結果都不太令人滿意。

          技術選型的話用的是jquery,也是一個企業(yè)內網(wǎng)系統(tǒng),用的是之前公司的框架,只是進行功能擴展

          分片網(wǎng)上討論的很多,基本上全部都是用的HTML5的API,這個方案也不是不能用,但是在IE下面就不行了,兼容性差了點,并且也不能進行擴展,不能進行二次開發(fā),限制性非常大,我們技術同事提的要求是需要提供產(chǎn)品完整源代碼,

          網(wǎng)上的文章全部都沒有提供文件夾上傳和續(xù)傳的代碼,也沒有提供數(shù)據(jù)庫操作的代碼,

          另外這塊我們是要求必須提供產(chǎn)品完整源代碼,因為后面我們需要自已來維護,同時是要求能夠自主可控的

          研發(fā)部門的同事調研過百度的webuploader這個組件,發(fā)現(xiàn)他實際上就是對Flash和HTML5進行了一個封裝,本質還是調的HTML5的API,之前在項目中也用過,嘗試過,但是最終都不太滿意,一個是兼容性非常差,說的是兼容IE,但是在IE用的是Flash,在很多用戶的電腦上用不了,卡頓崩潰發(fā)生的太頻繁,文件上傳的數(shù)量一多比如幾千個,前端頁面就開始卡了,用戶體驗非常差。這些問題研發(fā)部的同事都向百度反應過,但是百度webuploader那邊一直沒人回,基本上沒人管,領導說要求付費提供技術支持,那邊也是沒人回,聯(lián)系不上他們任何人。

          webuploader這邊連個開發(fā)人員都聯(lián)系不到,這個是怎么回事?

          用戶上傳的文件比較大,有20G左右,直接用HTML傳的話容易失敗,服務器也容易出錯,需要分片,分塊,分割上傳。也就是將一個大的文件分成若干個小文件塊來上傳,另外就是需要實現(xiàn)秒傳功能和防重復功能,秒傳就是用戶如果上傳過這個文件,那么直接在數(shù)據(jù)庫中查找記錄就行了,不用再上傳一次,節(jié)省時間,實現(xiàn)的思路是對文件做MD5計算,將MD5值保存到數(shù)據(jù)庫,算法可以用MD5,或者CRC,或者SHA1,這個隨便哪個算法都行。

          切片的話還有一點就是在服務器上合并,一個文件的所有分片數(shù)據(jù)上傳完后需要在服務器端進行合并操作。

          視頻教程:https://www.ixigua.com/7227314770696012322

          導入項目:
          導入到Eclipse:http://www.ncmem.com/doc/view.aspx?id=9da9c7c2b91b40b7b09768eeb282e647
          導入到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示例不需要任何配置,可以直接訪問測試

          創(chuàng)建數(shù)據(jù)表

          選擇對應的數(shù)據(jù)表腳本,這里以SQL為例

          修改數(shù)據(jù)庫連接信息

          訪問頁面進行測試

          文件存儲路徑

          up6/upload/年/月/日/guid/filename

          相關問題:
          1.javax.servlet.http.HttpServlet錯誤
          2.項目無法發(fā)布到tomcat
          3.md5計算完畢后卡住
          4.服務器找不到config.json文件

          相關參考:

          文件保存位置

          源碼工程文檔:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra

          源碼報價單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwoiul8gl

          OEM版報價單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwuzp4W0a

          產(chǎn)品源代碼:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc
          授權生成器:https://drive.weixin.qq.com/s?k=ACoAYgezAAwTIcFph1

          網(wǎng)頁下載下來使用,在日常工作中使用頻率還是很高的,有時候確實能解一時之急,我自己就有很窘迫的經(jīng)歷。

          我開會的時候,都會把準備好的文檔存在局域網(wǎng),到會議室直接打開就能直接用了。有一次到分公司,由于分公司剛剛成立,內網(wǎng)還沒有和母公司連通。結果這下子懵逼了,上不去內網(wǎng),看不到文檔。又是叫同事發(fā)過來,又是提發(fā)送文件的安全申請,讓人著急。

          如果把網(wǎng)站保存下來,放在自己的電腦中,既不用擔心信息泄露問題,又不用為了看不了文檔而著急。

          遇到問題,記錄下來,然后解決問題,程序員的解決思路永遠是自己創(chuàng)造輪子的,接下來就是不斷的探索解決方案。

          其實下載網(wǎng)頁的方式有很多種,其中有幾種辦法使用的比較多,例如:如果你用Chrome,直接按 Ctrl+s 就可實現(xiàn)。使用這種方法,Chrome會把整個網(wǎng)站,按照編譯完成的源碼目錄結構保存下來。像下面這樣:

          下載完成的文件直接點擊 xxx.html 可以直接離線訪問,但是這種方式對目錄的依賴結構比較高,怎么理解呢?就是 html 文件和對應文件名的文件夾必須在同一個目錄中,才能正常使用。拷貝到其他機器的時候必須要兩個同時拷貝才可以,否則就會排版錯亂。

          如果有十個或者更多的網(wǎng)頁需要拷貝或者刪除,就會很麻煩,例如我想在其中找到其中幾個,復制到其他地方,很容易弄錯順序。

          HTML 是一種純文本格式,它用于排版文字。純文本文檔的意思就是,文檔中只包含文字內容,不包含二進制內容,舉個例子:打印出的A4紙,只有文字沒有圖片。而 HTML 想要顯示照片等二進制信息,通常都會鏈接到其他文件,也就是上面文件夾里面的內容。

          不過 Chrome 下載文件這種方式也有優(yōu)點,下載下來的文件可以保持獨立性,比如說,我需要這個網(wǎng)頁中的一張圖片,那么就可以直接到文件夾里面尋找了。

          另外還有一種辦法,也有很多人再使用。Chrome 在打印網(wǎng)頁的時候,會把網(wǎng)頁轉成 PDF ,然后在進行打印。那么就給我們提供了很明確的思路,把網(wǎng)頁直接保存為 PDF ,這樣保存下來的網(wǎng)頁就只有一個文件。

          使用Chrome,直接按下Ctrl+p就可以。然后目標打印機選擇 另存為 PDF 。

          這個功能很多瀏覽器都支持

          但是這種辦法也有很明顯的缺點,由于 PDF 是靜態(tài)文檔,網(wǎng)頁上的一些動畫可能不會正常顯示,而且排版也有可能會錯亂,這完全靠運氣。個人覺得這不是一種很靠譜的方法。

          這時候主角來了!有一個工具既可以把網(wǎng)頁保存為 html 又可以保持是單文件。他就是 monolith ,你可以在 github 上面找到它,但是源碼并沒有編譯為可執(zhí)行文件,我把它編譯了一下,下面會放上來鏈接,https://github.com/leconio/Repos/raw/master/monolith.7z。

          那么下面就簡單說說使用方法:如果你下載我的鏈接,那么里面有三個文件:

          第一個是Mac平臺編譯出來的,使用方式為:

          ./monolith 網(wǎng)站地址 > xxx.html
          

          默認情況下 monolith 會把生成的 html 輸出到標準輸出流,也就是當前終端。使用 > 我們把輸出的內容重定向并覆蓋到文件。

          執(zhí)行完成之后,在這個目錄下面就會有一個對應的文件:xxx.html 。

          另外兩個是 Windows 平臺使用的。為了簡化使用,我寫了一個 CMD 腳本。直接點擊 monolith.cmd ,然后粘貼地址就可以完成下載。

          下載完成之后,在本地你會發(fā)現(xiàn)只有一個 html 文件。我們打開之后,發(fā)現(xiàn)圖片和JS等信息都在,而且排版正常。那么就要思考了,我們之前說過,HTML 是放置純文本信息的,那么圖片在哪里呢?

          答案顯而易見,就在 HTML 文件里面。為了方便小圖片傳輸,有一種叫 Base64 的東西,它可以把二進制信息變成成純文本。這在使用 Json 傳遞數(shù)據(jù)的今天十分常見,它可以減少一次請求(題外話),這里就是用的這個原理。monolith 把圖片等二進制內容轉為了純文本,保存在 HTML 文件中。我們在下載的文件源碼可以看到:

          對比源代碼,src 信息已經(jīng)變成了 base64 格式的圖片,就是那串亂碼。復制那串亂碼,從網(wǎng)上搜一個 base64 轉圖片工具,粘貼進去,這時會發(fā)現(xiàn)就是我們看到的那張圖片。這樣一來,無論這個網(wǎng)站上有多少個文件,都會保存到一個 HTML 文件里面,而且還能離線使用。

          當然,base64 編碼的圖片比原生圖片略大,這可能也是你現(xiàn)在在擔心的問題。不過 monolith 會特殊處理文件體積。我們可以看看 Chrome 直接下載和使用 monolith 下載體積相差多少。我們把兩種方式下載的網(wǎng)頁都進行了 7-Zip 壓縮。

          我們可以看到,使用 monolith 下載會比 Chrome 直接下載小一倍還多!

          最后要說的是局限性,無論那種方法,都幾乎不能把視頻網(wǎng)站中的視頻下載下來。因為現(xiàn)在的視頻地址都是 Token 加密的,同理,使用 Token 加密的其他請求信息也無法下載。

          比如你可以試試下載其他網(wǎng)站的首頁,Logo 和視頻都是下載不了的。但是也有解決辦法,那就是另外一個領域的事情了,以后有機會說給大家聽。

          如果這篇文章對您或者您的朋友有幫助,感謝您關注,轉發(fā)。

          換流的作用就是將我們的字節(jié)流轉換成字符流

          字節(jié)流是可以處理一切內容的,包括圖片,音頻,視頻,也包括純文本,在很多系統(tǒng)和框架的底層返回給我們的都是字節(jié)流(有時候我們使用字節(jié)流處理并不方便,這就是我們?yōu)槭裁匆D換字符流的原因)

          System.in,System.out都是字節(jié)流,因為我們鍵盤輸入還是輸出的都是字符串,所以我們可以對它進行轉換。

          在我們的底層,如果是純文本的話就涉及到一個東西是字符集。將字節(jié)轉成字符叫做解碼(在解碼的過程中就涉及到字符集的問題,如果工程的字符集跟源頭(文件)的字符集不統(tǒng)一就會出現(xiàn)亂碼),所以這個時候我們最好可以指定字符集

          從字節(jié)流到字符流的轉換

          只要我們看見Reader都建議加一個BufferedReader

          將寫入的字符編碼為字節(jié)

          講一下什么使用字節(jié)流,什么時候使用字符流

          其實底層都是字節(jié),我們使用字符是為了處理一些文本和字符串提高性能字符流處理的單元為2個字節(jié)的Unicode字符,分別操作字符、字符數(shù)組或字符串,而字節(jié)流處理單元為1個字節(jié),操作字節(jié)和字節(jié)數(shù)組。所以字符流是由Java虛擬機將字節(jié)轉化為2個字節(jié)的Unicode字符為單位的字符而成的,所以它對多國語言支持性比較好!如果是音頻文件、圖片、歌曲,就用字節(jié)流好點,如果是關系到中文(文本)的,用字符流好點 所有文件的儲存是都是字節(jié)(byte)的儲存,在磁盤上保留的并不是文件的字符而是先把字符編碼成字節(jié),再儲存這些字節(jié)到磁盤。在讀取文件(特別是文本文件)時,也是一個字節(jié)一個字節(jié)地讀取以形成字節(jié)序列

          字節(jié)流和字符流的使用:


          Java IO流中提供了兩種用于將字節(jié)流轉換為字符流的轉換流。其中InputStreamReader用于將字節(jié)輸入流轉換為字符輸入流,其中OutputStreamWriter用于將字節(jié)輸出流轉換為字符輸出流。使用轉換流可以在一定程度上避免亂碼,還可以指定輸入輸出所使用的字符集


          講一下緩存流和轉換流的結合,看見Reader我們就可以使用緩存流提高性能

          使用轉換流實現(xiàn)字節(jié)到字符的轉換以及輸入和輸出

          · 節(jié)點流:可以從或向一個特定的地方(節(jié)點)讀寫數(shù)據(jù)。如FileReader.

          · 處理流:是對一個已存在的流的連接和封裝,通過所封裝的流的功能調用實現(xiàn)數(shù)據(jù)讀寫。如BufferedReader.處理流的構造方法總是要帶一個其他的流對象做參數(shù)。一個流對象經(jīng)過其他流的多次包裝,稱為流的鏈接。

          講一下什么是節(jié)點流

          字符流和字節(jié)流就可以叫做節(jié)點流

          出現(xiàn)亂碼的原因有兩種:

          1.字節(jié)數(shù)不夠出現(xiàn)亂碼

          2.字符集不統(tǒng)一出現(xiàn)亂碼

          html文件的下載,如何使用字節(jié)流,如何使用轉換流

          在java中文件的傳輸其實就是靠流來實現(xiàn)的,網(wǎng)絡流也是屬于字節(jié)流,所以我們先使用字節(jié)流

          我覺得寫的時候應該是全部都寫出來才寫的,具體debug才知道,我這里就不弄了

          為什么讀取的時候亂碼,寫入的時候不亂碼

          忽然一下子自己就懂了,總之寫入的時候只要講字符集設置的和源頭的文件一致就可以了


          主站蜘蛛池模板: 国产乱码一区二区三区| 日本一区二区三区精品国产| 亚洲性色精品一区二区在线| 国产福利一区二区精品秒拍| 国产福利电影一区二区三区久久老子无码午夜伦不 | 无码国产精品一区二区免费vr | 久久er99热精品一区二区| 亚州国产AV一区二区三区伊在| 日韩一区精品视频一区二区| 精品少妇一区二区三区视频| 国产av夜夜欢一区二区三区| 国产精品一区二区无线| 日本一区二三区好的精华液| 国产精品视频分类一区| 国产主播在线一区| 久久精品日韩一区国产二区 | 一区二区三区免费电影| 久久影院亚洲一区| 亚洲福利一区二区三区| 国产视频一区在线观看| 一区二区三区在线|欧| 亚洲av成人一区二区三区观看在线 | 亚洲国产美女福利直播秀一区二区| 中文字幕精品一区二区日本| 日本无码一区二区三区白峰美| 亚洲AV无码国产一区二区三区 | 国产成人片视频一区二区| 久久AAAA片一区二区| 国产av一区二区三区日韩| 97av麻豆蜜桃一区二区| 四虎在线观看一区二区| av无码人妻一区二区三区牛牛| 乱色精品无码一区二区国产盗| 国产人妖视频一区二区破除| 久久无码精品一区二区三区| 午夜DV内射一区区| 亚洲福利秒拍一区二区| 本免费AV无码专区一区| 国产精品无码一区二区三区毛片| 国产另类TS人妖一区二区 | 无码少妇一区二区性色AV|