OSS\OssClient::uploadFile PHP Метод

uploadFile() публичный Метод

上传本地文件
public uploadFile ( string $bucket, string $object, string $file, array $options = NULL ) : null
$bucket string bucket名称
$object string object名称
$file string 本地文件路径
$options array
Результат null
    public function uploadFile($bucket, $object, $file, $options = NULL)
    {
        $this->precheckCommon($bucket, $object, $options);
        OssUtil::throwOssExceptionWithMessageIfEmpty($file, "file path is invalid");
        $file = OssUtil::encodePath($file);
        if (!file_exists($file)) {
            throw new OssException($file . " file does not exist");
        }
        $options[self::OSS_FILE_UPLOAD] = $file;
        $file_size = filesize($options[self::OSS_FILE_UPLOAD]);
        $is_check_md5 = $this->isCheckMD5($options);
        if ($is_check_md5) {
            $content_md5 = base64_encode(md5_file($options[self::OSS_FILE_UPLOAD], true));
            $options[self::OSS_CONTENT_MD5] = $content_md5;
        }
        if (!isset($options[self::OSS_CONTENT_TYPE])) {
            $options[self::OSS_CONTENT_TYPE] = $this->getMimeType($object, $file);
        }
        $options[self::OSS_METHOD] = self::OSS_HTTP_PUT;
        $options[self::OSS_BUCKET] = $bucket;
        $options[self::OSS_OBJECT] = $object;
        $options[self::OSS_CONTENT_LENGTH] = $file_size;
        $response = $this->auth($options);
        $result = new PutSetDeleteResult($response);
        return $result->getData();
    }

Usage Example

Пример #1
0
 /**
  * 当个上传文件并返回上传的URL地址
  * @param $filename string 要保存的文件名称 注意如果存在目录的话
  * @param $filepath string 文件在服务器(本地的绝对或者相对路径,这里的服务器实际上是本地)上的路径
  * @return bool or url
  */
 public function upload2AliyunSdkSingle($filename, $filepath)
 {
     $dir = C('ALIYUN_DIR');
     //保存在阿里云的基本路径
     $endpoint = C('ALIYUN_endpoint');
     //阿里云的节点信息 请自行查阅本字段意义
     $midStr = 'upload/' . date('y') . '/' . date('m') . '/' . date('d') . '/';
     //这里是为了保存的路径暂时以当前时间为准
     try {
         $ossClient = new OssClient(C('ALIYUN_KeyId'), C('ALIYUN_KeySecret'), $endpoint);
         //这里要放入你从阿里云获得的key和secret这里我做成了配置项读取
     } catch (OssException $e) {
         print $e->getErrorMessage();
     }
     $ossClient->setTimeout(3600);
     // 设置请求超时时间
     $ossClient->setConnectTimeout(10);
     //设置连接超时时间
     try {
         $ossClient->uploadFile(C('ALIYUN_bucket'), $dir . $midStr . $filename, $filepath);
     } catch (OssException $e) {
         return false;
     }
     $ret = str_replace('http://', 'http://' . C('ALIYUN_bucket') . '.', $endpoint . '/' . $dir . $midStr . $filename);
     //返回拼接的http url
     return $ret;
 }
All Usage Examples Of OSS\OssClient::uploadFile