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) });