laravel getClientOriginalExtension () для строки при передаче имени файла - PullRequest
0 голосов
/ 20 апреля 2020

У меня довольно простая настройка, где я беру вложения файлов, которые перетаскиваются на интерфейс, а затем сохраняю имя файла в базе данных и сохраняю файлы в aws. Теперь имя файла записывается правильно и просто сохраняется в базе данных, но при вызове контроллера для сохранения файлов в AWS у меня возникают проблемы.

В настоящее время я получаю сообщение об ошибке «Вызов функции-члена getClientOriginalExtension () on string ", но строка - это как минимум правильное имя файла.

Что я делаю не так и как я могу получить это, чтобы правильно сохранить в моем AWS ведре?

attach. vue

let data = {
    attachment:file.upload.filename
};

axios.post('/attachment/save', data)
.then((response) => {
    console.log(response.data);
})

контроллер. php

public function save(Request $request)
{
    $filename = (string) Str::uuid();
    $filename .= '.' . $request->attachment->getClientOriginalExtension();

    $path = $request->attachment->storeAs('attachments', $filename, 's3');
}

1 Ответ

1 голос
/ 20 апреля 2020

Я думаю, что это, вероятно, связано с тем, что вы на самом деле не извлекли файл. getClientOriginalExtension() используется, когда у вас есть файл по вашему запросу, как это:

$name = Input::file('photo')->getClientOriginalName();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...