PHP上传图片至OSS

阿里云上传类

<?php
USE OSS\OssClient;
USE OSS\Core\OssException;

require "OssUpload/autoload.php";

Class AliUpload{

    public function __construct(){
        $this->init();
    }

    public function init(){
        $CI                 = &get_instance();
        $CI->config->load('oss', TRUE);
        $config = $CI->config->item('oss','oss');   //加载oss配置
        $this->Access_Key   = $config['accessKeyId'];
        $this->Secret_Key   = $config['accessKeySecret'];
        $this->bucket       = $config['bucketName'];
        $this->endpoint     = $config['endpoint'];

    }

    /**
     * 上传接口
     * @Author   
     * @DateTime  2017-03-08
     * @param string $bucket bucket name
     * @param string $object object name
     * @param string $file local file path
     * @param array $options
     * @throws OssException  [文件类型]
     */
    public function upload($dst,$src){
        //获取对象
        $auth = new OssClient($this->Access_Key,$this->Secret_Key,$this->endpoint);
         try {
            //上传图片
            $result  = $auth->uploadFile($this->bucket,$dst,$src);
            return $result['info']['url'];
         } catch (OssException $e) {
            return $e->getMessage();
         }
    }

    /**
     * @Author   
     * @DateTime  2018-03-08
     * @return    [type]      [description]
     */
    public function uploadVideo($dst,$src){
        $ossClient = new OssClient($this->Access_Key,$this->Secret_Key,$this->endpoint);
        try{
            $result = $ossClient->multiuploadFile($this->bucket,$dst,$src);
            return $result['info']['url'];
        } catch(OssException $e) {
            printf(__FUNCTION__ . ": FAILED\n");
            printf($e->getMessage() . "\n");
            return;
        }
        print(__FUNCTION__ . ":  OK" . "\n");

    }


}

oss上传图片

/**
   * 上传图片
   * @Author   
   * @DateTime  2018-03-10
   * @return    [json]      [图片url]
   */
    public function uploadImg(){

      $scr = $_FILES['file']['tmp_name']; 

      $ext = substr($_FILES['file']['name'],strrpos($_FILES['file']['name'],'.')+1); // 上传文件后缀

      $dst = md5(time()).'-'.$scr.'.'.$ext;     //上传文件名称

      $this->load->library('AliUpload');

      $url = $this->aliupload->upload($dst,$scr);

      $data = array('url' =>$url);

      $this->response(0,'上传成功',$data);
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 UniApp 中实现将图片OSS(对象存储服务)的功能,你可以使用uni-app插件`uni.uploadFile`来实现。 首先,你需要将 OSS 的配置信息设置好,包括 `accessKeyId`、`accessKeySecret`、`bucket`、`region` 等信息。你可以将这些信息保存在配置文件中或者通过接口获取。 然后,在页面中添加一个按钮,用于触发选择图片和上功能: ```html <template> <view> <button @click="chooseAndUpload">选择图片并上</button> </view> </template> ``` 接下来,在页面的对应的 Vue 实例中,定义 `chooseAndUpload` 方法来触发选择图片和上: ```javascript <script> export default { methods: { chooseAndUpload() { uni.chooseImage({ count: 1, success: (res) => { const tempFilePaths = res.tempFilePaths this.uploadImage(tempFilePaths[0]) }, }) }, uploadImage(filePath) { uni.uploadFile({ url: 'https://your-oss-endpoint', // 替换为你的 OSS地址 filePath, name: 'file', formData: { key: 'your-oss-key', // 替换为你的 OSS 对象存储路径和文件名 policy: 'your-oss-policy', // 替换为你的 OSS策略 OSSAccessKeyId: 'your-access-key-id', // 替换为你的 OSS AccessKeyId signature: 'your-oss-signature', // 替换为你的 OSS 签名 success_action_status: '200', // 上成功的状态码 }, success: (res) => { console.log(res.data) // 上成功后的响应数据 }, }) }, }, } </script> ``` 在 `chooseAndUpload` 方法中,我们使用 `uni.chooseImage` 方法来选择一张图片,然后将选中的图片路径递给 `uploadImage` 方法进行上。在 `uploadImage` 方法中,我们使用 `uni.uploadFile` 方法来实现图片功能。 注意替换 `https://your-oss-endpoint` 为你的 OSS地址,并填充相应的 OSS 配置信息。 这样,当点击页面中的按钮后,就会触发选择图片并上OSS 的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值