## js上傳文件到七牛
七牛JavaScript SDK
https://developer.qiniu.com/kodo/sdk/1283/javascript
```
<input type="file" id="photo" accept="image/*">
```
```
$('#photo').change(function(){
// 校驗
var filePath = $(this).val();
var fileFormat = filePath.substring(filePath.lastIndexOf(".")).toLowerCase();
if(!fileFormat.match(/.png|.jpg|.jpeg/)) {
alert('上傳錯誤,文件格式必須為:png/jpg/jpeg');
return;
}
var file = this.files[0];
var fileName = this.files[0].name;
var _token = 'ZC0\_eBtUmOeuwNDSEvmrOkFJtq8FfbGyXECOWtI3:-aR3bQZ5igyy9FbUvX6ZTYvyyeI=:eyJzY29wZSI6ImltYWdlcyIsImRlYWRsaW5lIjoxNTYyNjU5OTcyfQ==' // 通過服務端對接七牛獲取token
upLoadQiniu(file, fileName, _token)
})
// 上傳 預覽
function upLoadQiniu(file, fileName, token) {
var key = fileName; // 文件資源名
var putExtra = {
fname: "", // 文件原文件名
params: {}, // 用來放置自定義變量
mimeType: ["image/png", "image/jpeg",, "image/jpg"] // 用來限制上傳文件類型,為 null 時表示不對文件類型限制
};
var config = {
useCdnDomain: true, // 表示是否使用 cdn 加速域名,為布爾值,true 表示使用,默認為 false。
region: null // 根據具體提示修改上傳地區,當為 null 或 undefined 時,自動分析上傳域名區域
};
var observable = qiniu.upload(file, key, token, putExtra, config)
observable.subscribe({
next(res){
// 進度
},
error(err){
// 報錯
},
complete(res){
// 完成
}
})
}
```