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'''