Загрузка нескольких файлов в Amazon не работает с использованием PHP-кода
Я хочу загрузить несколько файлов в Amazon, используя S3 API.
Это мой код
<form method="POST" enctype="multipart/form-data" action="/uploadcontentintoamazone">
<input type="file" id="fileinputAllPages" name="files[]" multiple />
</form>
uploadcontentintoamazone.php
$allFiles = $_FILES['files'];
$s3 = S3Client::factory(array(
'key' => '*************************',
'secret' => '*************************'
));
foreach($allFiles['tmp_name'] as $file){
$pathToFileSingle = $file;
$destFilePath = 'destination file name';
$commands[] = $s3->getCommand('PutObject', array(
'Bucket' => 'application-data',
'Key' => $destFilePath.$file,
'SourceFile' => $pathToFileSingle,
'ACL' => 'public-read'
));
}
$s3->execute($commands);
foreach ($commands as $command) {
$result = $command->getResult();
}
API интеграция работает отлично. Но временный файл загружен вместо моего загруженного файла.
заранее спасибо
2 ответа
Решение
Попробуйте так:
for($i=0; $i<count($_FILES['files']['name']); $i++) {
$pathToFileSingle = $_FILES['upload']['tmp_name'][$i];
$destFilePath = 'destination file name' . $_FILES['upload']['name'][$i];
$commands[] = $s3->getCommand('PutObject', array(
'Bucket' => 'application-data',
'Key' => $destFilePath,
'SourceFile' => $pathToFileSingle,
'ACL' => 'public-read'
));
}
Вы перебираете неправильный массив, вам нужно сделать это так:
foreach($allFiles as $file) {
$pathToFileSingle = $file["tmp_name"];
$destFilePath = $file["name"];
(вы также не правильно указали имя файла назначения)