小程序上傳可以看這個https://www.jianshu.com/writer#/notebooks/45366587/notes/68450036
最近需要用到上傳本地圖片到阿里雲,自己做了個demo
<script src="http://gosspublic.alicdn.com/aliyun-oss-sdk-4.4.4.min.js"></script> //引入阿里雲sdk文件
<input type="file" id="file" /> <script type="text/javascript"> var stokeUrl = "*********"; //阿里雲地址 var accessKeyId = '', accessKeySecret = '', stsToken = ''; ajax("GET", stokeUrl, function(res) { var str = JSON.parse(res); accessKeyId = str.data.accessKeyId, accessKeySecret = str.data.accessKeySecret, stsToken = str.data.securityToken; //獲得權限 var client = new OSS.Wrapper({ region: 'oss-cn-hangzhou',//你自己的地址 accessKeyId: accessKeyId, accessKeySecret: accessKeySecret, stsToken: stsToken, bucket: '*****'//文件名稱 }); document.getElementById('file').addEventListener('change', function(e) { var file = e.target.files[0]; console.log(e); var storeAs = 'upload-file'; //圖片名 storeAs = 'test/'+file.name //所要上傳的文件名拼接 (test/) console.log(storeAs); client.multipartUpload(storeAs, file).then(function(result) { console.log("上傳成功"); console.log(result); //獲得圖片地址 var src = 'https://www.treeholeapp.com/' + result.name; $("#img").attr('src', src);//賦值給img元素 }).catch(function(err) { console.log("上傳失敗"); console.log(err); }); }); }) function ajax(type, url, fnSucc, fnFaild) { //1.創建Ajax對象 var oAjax = null; if(window.XMLHttpRequest) { oAjax = new XMLHttpRequest(); } else { oAjax = new ActiveXObject("Microsoft.XMLHTTP"); } //2.連接服務器 oAjax.open(type, url, true); //3.發送請求 oAjax.send(); //4.接收服務器的返回 oAjax.onreadystatechange = function() { if(oAjax.readyState == 4) //完成 { if(oAjax.status == 200) //成功 { fnSucc(oAjax.responseText); } else { if(fnFaild) fnFaild(oAjax.status); } } }; } </script>
阿里雲上傳到服務器主要步驟就是請求權限 ajax請求上傳
其實到這里基本結束了,但是你會發現,提交的時候會產生: No 'Access-Control-Allow-Origin' header is present on the requested resource. 跨域請求,這時需要檢查你的阿里雲服務器設置請求頭,具體參考阿里雲OSS跨域,會有設置的API
