當前位置:首頁 » 文件管理 » html5上傳組件

html5上傳組件

發布時間: 2023-07-17 05:27:37

① 你好,我用webuploader.html5only.min.js實現批量圖片上傳,我該怎麼在action中獲取上傳的那些文件呢

1.1 分片、並發
分片與並發結合,將一個大文件分割成多塊,並發上傳,極大地提高大文件的上傳速度。
當網路問題導致傳輸錯誤時,只需要重傳出錯分片,而不是整個文件。另外分片傳輸能夠更加實時的跟蹤上傳進度。
1.2 預覽、壓縮
支持常用圖片格式jpg,jpeg,gif,bmp,png預覽與壓縮,節省網路數據傳輸。
解析jpeg中的meta信息,對於各種orientation做了正確的處理,同時壓縮後上傳保留圖片的所有原始meta數據。
1.3 多途徑添加文件
支持文件多選,類型過濾,拖拽(文件&文件夾),圖片粘貼功能。
粘貼功能主要體現在當有圖片數據在剪切板中時(截屏工具如QQ(Ctrl + ALT + A), 網頁中右擊圖片點擊復制),Ctrl + V便可添加此圖片文件。
1.4 HTML5 & FLASH
兼容主流瀏覽器,介面一致,實現了兩套運行時支持,用戶無需關心內部用了什麼內核。
同時Flash部分沒有做任何UI相關的工作,方便不關心flash的用戶擴展和自定義業務需求。
1.5 MD5秒傳
當文件體積大、量比較多時,支持上傳前做文件md5值驗證,一致則可直接跳過。
如果服務端與前端統一修改演算法,取段md5,可大大提升驗證性能,耗時在20ms左右。
1.6 易擴展、可拆分
採用可拆分機制, 將各個功能獨立成了小組件,可自由搭配。
採用AMD規范組織代碼,清晰明了,方便高級玩家擴展。
2、引入資源
2.1 下載包內容

├── Uploader.swf // SWF文件,當使用Flash運行時需要引入。

├── webuploader.js // 完全版本。
├── webuploader.min.js // min版本

├── webuploader.flashonly.js // 只有Flash實現的版本。
├── webuploader.flashonly.min.js // min版本

├── webuploader.html5only.js // 只有Html5實現的版本。
├── webuploader.html5only.min.js // min版本

├── webuploader.withoutimage.js // 去除圖片處理的版本,包括HTML5和FLASH.
└── webuploader.withoutimage.min.js // min版本

2.2 或者直接使用由staticfile提供的cdn版本,或者下載Git項目包。

// SWF文件,當使用Flash運行時需要引入。
├── http://cdn.staticfile.org/webuploader/0.1.0/Uploader.swf

// 完全版本。
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.js
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.min.js

// 只有Flash實現的版本。
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.flashonly.js
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.flashonly.min.js

// 只有Html5實現的版本。
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.html5only.js
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.html5only.min.js

// 去除圖片處理的版本,包括HTML5和FLASH.
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.withoutimage.js
└── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.withoutimage.min.js

2.3 DIY打包
WebUploader文件打包藉助了Grunt工具來實現
2.3.1 環境依賴
1.git命令行工具
2.node & npm命令行工具
3.grunt (npm install grunt-cli -g)

2.3.2 編譯代碼
1.克隆 webuploader git倉庫,git clone https://github.com/fex-team/webuploader.git。
2.安裝node依賴,npm install。
3.執行grunt dist,此動作會在dist目錄下面創建合並版本的js, 包括通過uglify壓縮的min版本。

2.3.3 配置
打開webuploader倉庫根目錄下面的Gruntfile.js文件, 代碼合並有buildtask來完成。找到build配置項。
Gruntfile.js已經配置了一個自定義合並的demo. 打包只支持HTML5的版本

// 自己配置的實例
// glob語法。
custom: {
preset: "custom",
cwd: "src",
src: [
'widgets/**/*.js',
'runtime/html5/**/*.js' ],
dest: "dist/webuploader.custom.js"
}

3、angular指令——<web-uploader>
3.1 指令功能
添加一個上傳文件按鈕,可以自行配置上傳文件的類型和過濾規則,且在彈出的模態框中進行操作,支持連續上傳,分類選擇上傳
3.2 使用說明
這里只是使用說明,可能會加一些注意事項,具體參數或者變數說明請參看後面
3.2.1 頁面添加一個指令
<web-uploader class="btn btn-info" type="image" accept="accept">uploader</web-uploader>

3.2.2 配置上傳類型和過濾規則
上傳類型
type有四種類型,分別為
image:圖片
video:音視頻
flash:flash
file:辦公文檔,壓縮文件等等
過濾規則
accept有四個對象屬性,屬性中包含標題、允許文件後綴、允許的mimetype
3.2.3 指令中綁定彈出模態框的事件
web-uploader這個指令中其實只做了一件事,給元素本身綁定彈出模態框的事件,具體上傳文件是在模態框中完成的
3.2.4 初始化uploader類,配置相關屬性
在模態框控制器中用到了$timeout
$timeout(function(){
//這里是上傳配置代碼
},0)

因為配置uploader時需要事先准備好dom元素,angular打開模態框是非同步而JavaScript是單線程,所以實際上在執行模態框控制器中的代碼時,模態框並沒有打開,也就是dom並沒有載入完成,這會導致WebUploader報a.runningtime is not a function...的錯誤
3.3 指令詳細說明
3.3.1 父級controller中的配置

.controller('myCtrl',['$scope', '$modal', function($scope, $modal){
//配置允許上傳的類型 圖片/音視頻/flash/文件
$scope.accept = {
//圖片
image: {
title : 'Images',//標題
extensions : 'gif,jpg,jpeg,bmp,png,ico',//允許上傳文件的後綴
mimeTypes : 'image/*'//允許的mimetype
},
//音視頻
video: {
title : 'Videos',
extensions : 'wmv,asf,asx,rm,rmvb,ram,avi,mpg,dat,mp4,mpeg,divx,m4v,mov,qt,flv,f4v,mp3,wav,aac,m4a,wma,ra,3gp,3g2,dv,vob,mkv,ts',
mimeTypes : 'video/*,audio/*'
},
//flash
flash: {
title : 'Flashs',
extensions : 'swf,fla',
mimeTypes : 'application/x-shockwave-flash'
},
//辦公文檔,壓縮文件等等
file: {
title : 'Files',
extensions : 'zip,rar,ppt,pptx,doc,docx,xls,xlsx,pdf',
mimeTypes : 'application/zip,application/x-rar-compressed,application/vnd.ms-powerpoint,application/vnd.openxmlformats- officedocument.presentationml.presentation,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms- excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/pdf'
}
};

}])

3.3.2 指令web-uploader

.directive('webUploader', ['$modal', function($modal){
return{
restrict: 'AE',
scope: {
accept: '=accept'
},
link: function($scope, $element, $attr){

$element.bind('click',function(){
var modalInstance = $modal.open({
controller: 'modalCtrl',
templateUrl: 'template/webuploader.tpl.html',
size:'lg',
resolve: {
items: function(){
return {
accept: $scope.accept,
type: $attr.type
};
}
}
});
modalInstance.result.then(function(returnStatus){
console.log(returnStatus);
},function(){
console.log('Modal dismissed at: ' + new Date());
});
});
}
};
}]);

② vue文件分片上傳,斷點續傳如何實現

首先需要明確,上傳這東西不僅僅是只需要前端就能完成的很好的,需要前端後端統一數據格式,從而實現斷點續傳。(所以,該文適合於全棧工程師,至少是想成為)
還有,為什麼需要分片,不分片能實現斷點續傳嗎?分片是為了充分利用網路帶寬,加快上傳速度;不分片也是能夠實現斷點續傳的。詳細參考 HTML5文件上傳組件深度剖析.
分片上傳與斷點續傳之間沒有很直接的關系.
實現斷點續傳的前提是需要伺服器記錄某文件的上傳進度,那麼根據什麼判斷是不是同一個文件呢?可以利用文件內容求md5碼,如果文件過大,求取md5碼也是一個很長的過程,所以對於大文件,只能針對某一段數據進行計算,加上伺服器對cookie用戶信息的判斷,得到相對唯一的key。
在前端頁面,需要將文件按照一定大小進行分片,一次請求只發送這一小片數據,所以我們可以同時發起多個請求。但一次同時請求的連接數不宜過多,伺服器負載過重。對於文件分片操作,H5具有十分強大的File API,直接利用File對象的slice方法即可得到Blob對象。
至於同時傳輸數據的連接數控制邏輯,就需要花點腦子思考了。前端把數據順利得傳給伺服器了,伺服器只需要按照數據中給的開始位元組位置,與讀取到的文件片段數據,寫入文件即可

③ 求jsp文件分片上傳,斷點續傳的方法

無組件斷點續傳.gif
1. 組件簡介
webuploader:是一個以HTML5為主, Flash為輔的文件上傳組件,採用大文件分片/並發上傳的方式,極大地提高了文件上傳的效率,同時兼容多種瀏覽器版本;
2. 項目背景簡介
本篇文章的背景,是在上一篇文章(《無組件實現大文件分片上傳,斷點續傳》)的項目背景下進行的一次嘗試,所以本篇文章還是基於上一篇文章的背景,但是不會介紹視頻基本信息(視頻標題、簡介、播出時間等)的操作,主要介紹文件的上傳。因為項目的特殊需求,這種使用插進的方式最終沒有被採用,因為一些控制項無法做到定製化。
上一篇文章(《無組件實現大文件分片上傳,斷點續傳》)中介紹的文件上傳方式,在前端主要採用純JavaScript來進行文件切分、驗證,後台主要採用了NIO的方式進行分片的追加。而在這篇文章中,將介紹前端採用webuploader,後台採用臨時目錄+傳統I/O方式進行分片合並的方式。
3. 技術實現
3.1 組件引入
在webuploader官網下載必要的文件,放入項目中。在頁面中進行引入;

0_組件引入.png

<!-- webuploader文件上傳 -->
<script src="static/webuploader/webuploader.nolog.min.js"></script>
<link href="static/webuploader/webuploader.css" rel="stylesheet" type="text/css" />

3.2 前端頁面實現
在前端頁面中,可以不用關心css樣式,但需要注意標簽的id/nama屬性,這些將在後面的JavaScript中使用到。

④ sview上傳文件怎麼改成大於500M

在設置中修改格式,改為大於500米即可。
WebUploader是由BaiWebFFEX團隊開發的一個簡單的以HTML5為主,FLASH為輔的現代文件上傳組件。在現代的瀏覽器裡面能充分發揮HTML5的優勢,同時又不摒棄主流IE瀏覽器。
使用WebUploader還可以批量上傳文件、支持縮略圖等等眾多參數選項可設置,以及多個事件方法可調用,你可以隨心所欲的定製你要的上傳組件。

熱點內容
全戰帝國與拿戰哪個配置高 發布:2025-02-04 04:59:39 瀏覽:749
海控聯盟怎麼下載安卓版 發布:2025-02-04 04:55:52 瀏覽:763
妖盪三界安卓叫什麼 發布:2025-02-04 04:54:24 瀏覽:831
資料庫表的備份 發布:2025-02-04 04:53:50 瀏覽:560
python深度遍歷 發布:2025-02-04 04:53:50 瀏覽:135
愛感大黑牛怎麼連接安卓手機 發布:2025-02-04 04:41:31 瀏覽:219
publicftp 發布:2025-02-04 04:41:26 瀏覽:73
sqlserver超時 發布:2025-02-04 04:39:58 瀏覽:71
網路推理演算法 發布:2025-02-04 04:37:00 瀏覽:260
c怎麼存儲數據 發布:2025-02-04 04:31:12 瀏覽:63