OSS JS前端直传 封装:
function upload(f,callback){
var client = new OSS.Wrapper({
region : 'oss-cn-beijing',
accessKeyId : 'LTAIJDKAA9Bww5',
accessKeySecret : 'd4Aw0BmtFa31yYGItEPZ9LpGFSAAAaz',
bucket : 'hai-test'
});
//文件格式限制
var suffix = f.name.substr(f.name.lastIndexOf("."));
console.info("suffix",suffix);
//支持的文件格式
var fileTypes = '视频格式:.mp4 .avi .rmvb ' +
'图片格式: .jpg .jpeg .gif ';
if(fileTypes.indexOf(suffix)==-1){
alert("暂不支持该文件格式")
return;
}
//文件大小限制
if(f.size>100*1000*1000){
alert("文件不得大于100M")
return;
}
//进度显示 开
console.log('上传中');
console.log(f.name);
var obj=Date.parse(new Date()); // 这里是生成文件名
var storeAs = 'upload-file/'+"/"+obj+suffix; //命名空间
console.log(' => ' + storeAs);
client.multipartUpload(storeAs, f).then(function (result) {
console.log("上传成功",result);
var url = result.res.requestUrls[0];
console.log("上传地址",url);
if (callback){
//去除多余字符
if (url&&url.indexOf("?")!=-1){
alert("去除多余字符"+url.indexOf("?"))
url = url.toString().substring(0,url.indexOf("?"));
}
callback(url);
}
}).catch(function (err) {
console.error("上传失败",err);
//进度显示 关
alert('上传失败 !');
});
}
用法:
var file = $('#file').files[0];
upload(file,function(url){
alert('上传成功,url='+url)
});