2015-01-03 2 views
5

Я пытаюсь загрузить файл в папку внутри ведра s3. я делаю следующее в PHP:amazon s3, загрузить файл в папку в bucket

$name = $_FILES['file']['name']; 
$size = $_FILES['file']['size']; 
$tmp = $_FILES['file']['tmp_name']; 
$bucket= $_POST['bucket']; 

$actual_image_name = explode('.',$name)[0]."-".time().".".$ext; 
$s3->putObjectFile($tmp, $bucket , $actual_image_name, S3::ACL_PUBLIC_READ); 

Имя Ковш является строка, которая передается PHP и указывает на подкаталог с использованием прямой слэш:

'<bucket name>/<subfolder>' 

однако, когда я загрузить новое изображение мой ковш, он загружается в корень ковша. Как загрузить этот файл в подпапку в моем ковше?

Thx

+1

Если кто-то использует Laravel: 'Storage :: disk ('s3') -> put ('created-directory-name /'.$ fileName, $ fileObject,' public ');' – partho

ответ

21

Имя подпапки должен быть добавлен к началу имени файла, а не в конец имени ведра.

+0

thx, теперь имеет смысл :) –

+0

не могли бы вы привести пример? что-то вроде 'photos/bucket-732h44d2', если я хочу использовать папку' photos'? –

+0

для других, если ваше имя файла '' 'test.png''', вставить в' '' (bucket1/folder1 /) '' ', а затем попробовать вставить в' '' bucket1''' с именем файла ' '' "folder1/test.png" (окончательный путь будет - bucket1/folder1/test.png) '' ' – kishorer747

Смежные вопросы