用php上传图片到阿里云oss

如果你想自动创建目录并将文件上传到新的目录下,你可以使用阿里云 OSS 的 `createObject` 方法来实现。下面是更新后的示例代码:

复制代码
```php
<?php
require_once __DIR__ . '/vendor/autoload.php'; // 引入 SDK

use OSS\OssClient;
use OSS\Core\OssException;

// 阿里云 OSS 的配置信息
$accessKeyId = '你的 AccessKeyId';
$accessKeySecret = '你的 AccessKeySecret';
$endpoint = '你的 OSS 存储空间的 Endpoint';
$bucket = '你的 Bucket 名称';

// 实例化 OSS 客户端
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);

// 获取上传的文件信息
$uploadedFile = $_FILES['file'];
$fileName = $uploadedFile['name'];
$fileTmpPath = $uploadedFile['tmp_name'];

// 创建目录
$directory = '新目录名称/'; // 设置新的目录名称
$object = $directory . $fileName;

// 上传文件到 OSS
try {
   $ossClient->createObjectDir($bucket, $directory); // 创建目录
   $ossClient->uploadFile($bucket, $object, $fileTmpPath); // 上传文件
   echo '文件上传成功!';
} catch (OssException $e) {
   echo '文件上传失败:' . $e->getMessage();
}
```

在这个示例中,我们使用 `createObjectDir` 方法来创建新的目录,并使用 `uploadFile` 方法将文件上传到指定的目录中。请确保将 `'新目录名称/'` 替换为你想要创建的目录名称。

这样,当用户上传文件时,将自动创建目录并将文件上传到新的目录中。

你可以使用阿里云 OSS 的 `doesObjectExist` 方法来判断一个目录是否存在,如果不存在则可以使用 `createObjectDir` 方法来创建目录。下面是一个示例代码:

复制代码
```php
<?php
require_once __DIR__ . '/vendor/autoload.php'; // 引入 SDK

use OSS\OssClient;
use OSS\Core\OssException;

// 阿里云 OSS 的配置信息
$accessKeyId = '你的 AccessKeyId';
$accessKeySecret = '你的 AccessKeySecret';
$endpoint = '你的 OSS 存储空间的 Endpoint';
$bucket = '你的 Bucket 名称';

// 实例化 OSS 客户端
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);

// 获取上传的文件信息
$uploadedFile = $_FILES['file'];
$fileName = $uploadedFile['name'];
$fileTmpPath = $uploadedFile['tmp_name'];

// 判断目录是否存在
$directory = '新目录名称/'; // 设置目录名称
$exist = $ossClient->doesObjectExist($bucket, $directory);

if (!$exist) {
   // 创建目录
   try {
      $ossClient->createObjectDir($bucket, $directory);
   } catch (OssException $e) {
      echo '目录创建失败:' . $e->getMessage();
      exit;
   }
}

// 上传文件到 OSS
try {
   $object = $directory . $fileName;
   $ossClient->uploadFile($bucket, $object, $fileTmpPath);
   echo '文件上传成功!';
} catch (OssException $e) {
   echo '文件上传失败:' . $e->getMessage();
}
```

在这个示例中,我们使用 `doesObjectExist` 方法来判断目录是否存在,如果不存在则使用 `createObjectDir` 方法创建目录。然后再使用 `uploadFile` 方法将文件上传到指定的目录中。请确保将 `'新目录名称/'` 替换为你想要创建的目录名称。

相关推荐
ServBay16 小时前
告别面条代码,PSL 5.0 重构 PHP 性能与安全天花板
后端·php
JaguarJack3 天前
FrankenPHP 原生支持 Windows 了
后端·php·服务端
BingoGo3 天前
FrankenPHP 原生支持 Windows 了
后端·php
JaguarJack4 天前
PHP 的异步编程 该怎么选择
后端·php·服务端
BingoGo4 天前
PHP 的异步编程 该怎么选择
后端·php
JaguarJack5 天前
为什么 PHP 闭包要加 static?
后端·php·服务端
ServBay6 天前
垃圾堆里编码?真的不要怪 PHP 不行
后端·php
用户962377954486 天前
CTF 伪协议
php
BingoGo8 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack8 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端