Пример, как PHP принимает файлы, загруженные через HTML-форму, и загружает их в хранилище AWS S3.
Сначала создадим простой HTML-код для загрузки, чтобы PHP мог принимать и загружать файлы. На странице HTML мы создаем простую форму для выбора файла, который хотим загрузить.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
| | <!-- index.html --> |
| --- | --- |
| | <!DOCTYPE html> |
| | <html> |
| | <head> |
| | <meta charset="UTF-8"> |
| | <title>Загрузка файлов</title> |
| | </head> |
| | <body> |
| | <form action="upload.php" method="post" enctype="multipart/form-data"> |
| | <input type="file" name="file"> |
| | <button type="submit">Загрузить файл</button> |
| | </form> |
| | </body> |
| | </html> |
|
В приведенном выше коде мы используем тег <form>
для загрузки файла на скрипт upload.php
, а также указываем атрибут enctype="multipart/form-data"
для поддержки загрузки файлов.
Теперь в PHP мы будем использовать библиотеку AWS SDK for PHP, чтобы загрузить файл в хранилище S3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
| | <?php |
| --- | --- |
| | // upload.php |
| | |
| | require 'vendor/autoload.php'; // Подключаем библиотеку AWS SDK для PHP |
| | |
| | use Aws\S3\S3Client; |
| | |
| | if ($_SERVER['REQUEST_METHOD'] === 'POST') {if (isset($_FILES['file'])) {$bucketName = 'your-bucket-name'; // Замените на название вашего S3 хранилища |
| | $s3Key = 'uploads/' . basename($_FILES['file']['name']); |
| | $file = $_FILES['file']['tmp_name']; |
| | |
| | $s3 = new S3Client(['version' => 'latest', |
| | 'region' => 'your-region', // Укажите регион вашего S3 хранилища |
| | 'credentials' => ['key' => 'your-access-key', |
| | 'secret' => 'your-secret-key', |
| | ], |
| | ]); |
| | |
| | try {$s3->putObject(['Bucket' => $bucketName, |
| | 'Key' => $s3Key, |
| | 'Body' => fopen($file, 'r'), |
| | 'ACL' => 'public-read', // Устанавливаем доступ на чтение для всех |
| | ]); |
| | echo 'Файл успешно загружен'; |
| | } catch (Exception $e) {echo 'Ошибка загрузки файла: ' . $e->getMessage();} |
| | } else {echo 'Файл не выбран для загрузки';} |
| | } else {echo 'Неверный метод запроса';} |
|
В приведенном коде PHP мы сначала подключаем библиотеку AWS SDK для PHP и создаем объект клиента S3. Затем мы получаем загружаемый файл из глобальной переменной $_FILES
и используем объект клиента S3 для загрузки файла в указанное хранилище.
Обратите внимание, что вам необходимо сначала создать хранилище S3 в AWS и настроить соответствующие права доступа. В этом примере мы устанавливаем загружаемые файлы на общедоступный доступ.