使用PlupLoad js外掛進行檔案上傳案例
案例程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Plupload使用指南</title>
<!-- 首先需要引入plupload的原始碼 -->
<script src="js/plupload.full.min.js"></script>
</head>
<body>
<p>
<button id="btn">選擇檔案</button>
</p>
<script>
//例項化一個plupload上傳物件
var uploader = new plupload.Uploader({
browse_button: 'btn', //觸發檔案選擇對話方塊的按鈕,為那個元素id
url: 'http://localhost:3000/map', //伺服器端的上傳頁面地址
filters: {
//設定允許上傳的型別
max_file_size: '100mb', //設定允許上傳的最大檔案的大小
mime_types: [
//用來限定上傳檔案的型別,一個型別一個物件,放入當前陣列
{title: 'Image files', extensions: 'jpg,png,tif,bmp'}
]
}
});
//在例項物件上呼叫init()方法進行初始化
uploader.init();
//當檔案新增到上傳佇列後觸發監聽函式引數
uploader.bind('FilesAdded', function (uploader, files) {
//uploader為當前的plupload例項物件,files為一個陣列,裡面的元素為本次新增到上傳佇列裡的檔案物件
console.log(uploader,files);
//佇列新增檔案後,直接呼叫檔案上傳,也可以單獨拿出
uploader.start();
});
//當佇列中的某一個檔案正要開始上傳前觸發監聽函式引數
uploader.bind("BeforeUpload",function (uploader,file) {
//uploader為當前的plupload例項物件,file為觸發此事件的檔案物件
console.log("開始上傳",uploader,file);
});
//會在檔案上傳過程中不斷觸發,可以用此事件來顯示上傳進度監聽函式引數
uploader.bind('UploadProgress', function (uploader, file) {
//uploader為當前的plupload例項物件,file為觸發此事件的檔案物件
console.log(file.id,file.name,file.percent);
});
//當佇列中的某一個檔案上傳完成後觸發監聽函式引數
uploader.bind("FileUploaded",function (uploader,file,responseObject) {
//uploader為當前的plupload例項物件,file為觸發此事件的檔案物件,responseObject為伺服器返回的資訊物件,它有以下3個屬性:
//response:伺服器返回的文字
//responseHeaders:伺服器返回的頭資訊
//status:伺服器返回的http狀態碼,比如200
console.log("上傳完成",uploader,file,responseObject);
});
</script>
</body>
</html>
file物件的相關屬性
屬性/方法 | 描述 |
---|---|
id | 檔案id |
name | 檔名,例如”myfile.gif” |
type | 檔案型別,例如”image/jpeg” |
size | 檔案大小,單位為位元組,當啟用了客戶端壓縮功能後,該值可能會改變 |
origSize | 檔案的原始大小,單位為位元組 |
loaded | 檔案已上傳部分的大小,單位為位元組 |
percent | 檔案已上傳部分所佔的百分比,如50就代表已上傳了50% |
status | 檔案的狀態,可能為以下幾個值之一:plupload.QUEUED, plupload.UPLOADING, plupload.FAILED, plupload.DONE |
lastModifiedDate | 檔案最後修改的時間 |
getNative() | 獲取原生的檔案物件 |
getSource() | 獲取mOxie.File 物件,想了解mOxie是什麼東西,可以看下https://github.com/moxiecode/moxie/wiki/API |
destroy() | 銷燬檔案物件 |
相關文章
- plupload微信檔案上傳外掛
- 外掛 檔案上傳外掛 ajaxfileupload.js外掛JS
- node使用multer進行檔案上傳
- JQuery外掛:圖片上傳本地預覽外掛,改進案例一則。jQuery
- jstorm kafka外掛使用案例JSORMKafka
- js實現帶上傳進度的檔案上傳JS
- 【nodejs】multer外掛批量上傳NodeJS
- 幾款極好的 JavaScript 檔案上傳外掛JavaScript
- 無外掛實現大檔案分片上傳,斷點續傳斷點
- Node.js:上傳檔案,服務端如何獲取檔案上傳進度Node.js服務端
- JavaWeb之實現檔案上傳與下載外掛JavaWeb
- Nodejs檔案上傳NodeJS
- 贊!帶進度條的 jQuery 檔案拖放上傳外掛jQuery
- 檔案上傳進度提示
- HTML5檔案上傳外掛HuploadifyV2.1釋出HTML
- 支援多檔案上傳,預覽,拖拽,基於bootstrap的上傳外掛fileinput的ajax非同步上傳boot非同步
- WebAPI Angularjs 上傳檔案WebAPIAngularJS
- 【SpringBoot】使用RestTemplate在服務之間進行MultipartFile格式檔案的傳遞【檔案上傳】Spring BootREST
- 在 Node.js 裡使用 multiparty 上傳檔案Node.js
- nodeJs + js 大檔案分片上傳NodeJS
- js+nodejs完成檔案上傳NodeJS
- jQuery上傳外掛Uploadify使用詳解jQuery
- apisix~自定義檔案上傳代理外掛~支援form-data檔案和kv引數APIORM
- 使用fileinput上傳檔案
- HTML5檔案上傳外掛 Huploadify V2.1釋出HTML
- AngularJS實現的檔案檔案上傳AngularJS
- 基於uni-app圖片上傳JS外掛APPJS
- storm kafka外掛使用案例ORMKafka
- 支援斷點續傳的檔案上傳外掛——Huploadify-V2.0來了斷點
- 上傳檔案帶進度條
- Jsp+Servlet實現檔案上傳下載(一)--檔案上傳JSServlet
- MVC檔案上傳 - 使用Request.Files上傳多個檔案MVC
- JS判斷檔案上傳格式JS
- JSP筆記-檔案上傳JS筆記
- js判斷上傳檔案大小JS
- AngularJS教程十二—— 檔案上傳AngularJS
- nodejs 使用七牛雲端儲存上傳檔案NodeJS
- 使用PDF.JS外掛在HTML中預覽PDF檔案JSHTML