檔案上傳-阿里雲OSS-儲存檔案
阿新 • • 發佈:2018-12-31
JS上傳檔案到阿里雲OSS
OSS支援流式寫入和讀出。特別適合視訊等大檔案的邊寫邊讀業務場景。
注意在OSS的控制檯:跨域管理中設定允許的方法
<script>
var client = new OSS.Wrapper({
region : 'oss-cn-beijing',
accessKeyId : '輸入你的accessKeyId ',
accessKeySecret : '輸入你的accessKeySecret ',
bucket : '你的儲存空間名字'
});
function on_click_upload_file(){
var file = document.getElementById("file").files[0];
if (file == null || file == "") {
alert("你還沒有選擇任何檔案,不能上傳!");
return false;
}
console.log(file.name);
var val= document.getElementById("file" ).value;
//定義允許上傳的檔案型別
var allow_ext = ".xls|.xlsx|.csv|";
//獲取字尾名
var suffix = val.substr(val.lastIndexOf("."));
//判斷上傳檔案型別是否允許上傳
if (allow_ext.indexOf(suffix + "|") == -1) {
var errMsg = "該檔案不允許上傳,請上傳" + allow_ext + "型別的檔案,當前檔案型別為:" + suffix;
alert(errMsg);
return false;
}
var obj=timestamp(); // 這裡是生成檔名
var storeAs =obj+suffix; //名稱空間
console.log(' => ' + storeAs);
client.multipartUpload(storeAs, file).then(function (result) {
console.log(result);//返回物件
console.log(result.url); //返回連結
}).catch(function (err) {
console.log(err);
});
}
/**
* 生成檔名
* @returns
*/
function timestamp(){
var time = new Date();
var y = time.getFullYear();
var m = time.getMonth()+1;
var d = time.getDate();
var h = time.getHours();
var mm = time.getMinutes();
var s = time.getSeconds();
console.log(y);
return ""+y+add0(m)+add0(d)+add0(h)+add0(mm)+add0(s);
}
function add0(m){
return m<10?'0'+m : m;
}
</script>
... prompt'''