下载阿里云OSS相关文件(都推荐composer 安装,但我捣鼓了半天,安装不成功,这里直接下载github上的包吧点我前往github下载)
整个文件下载下来后我们直接丢入根目录的 vendor 下面,这里我起名为 aliyunoss
小程序前端代码
var that = this; wx.chooseImage({ count: 9, sourceType: ['album', 'camera'], success: function(res) { for (var i = 0; i < res.tempFilePaths.length; i++) { wx.uploadFile({ url: '请求路径', filePath: res.tempFilePaths[i], name: 'file', formData: { }, success: function(res) { wx.hideLoading(); var backdata = JSON.parse(res.data); console.log(backdata) } }) } } })
api后代部分代码(uploadUpload.php)
<?phpnamespace appapicontrollerupload;use appcommoncontrollerApi;class Upload extends Api{ protected $noNeedLogin = ['*']; protected $noNeedRight = ['*']; protected $accessKeyId = '填写你的accessKeyId'; protected $accessKeySecret = '填写你的accessKeySecret'; protected $endpoint = '填写你的endpoint'; protected $bucket = '填写你的bucket'; public function _initialize() { parent::_initialize(); } public function upload(){ $file = $this->request->file('file'); $imgurl = $this->ossUploadFile($file)['imgurl']; $this->success('上传成功', ['imgurl' => $imgurl], 0); } public function ossUploadFile($file) { Vendor('aliyunoss.autoload'); // $resResult = Image::open($file); // 尝试执行 try { // $config = Config::pull('alioss'); //获取Oss的配置 //实例化对象 将配置传入 $ossClient = new OSSOssClient($this->accessKeyId, $this->accessKeySecret, $this->endpoint); //这里是有sha1加密 生成文件名 之后连接上后缀,后缀应该用Image类获取,这里仅供参考写死jpg文件 $fileName = 'img/' . sha1(date('YmdHis', time()) . uniqid()) . '.jpg'; //执行阿里云上传 $result = $ossClient->uploadFile($this->bucket, $fileName, $file->getInfo()['tmp_name']); /** * 这个只是为了展示 * 可以删除或者保留下做后面的操作 */ $arr = [ //图片地址 'imgurl' => $result['info']['url'], //数据库保存名称 'dbimgName' => $fileName ]; } catch (OssException $e) { return $e->getMessage(); } //将结果输出 return $arr; }}
希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。