Я пытаюсь сохранить изображение, отправленное из моего javascript (используя vue), в качестве формоданных, я пытаюсь правильно сохранить его в моей базе данных и создать папку в своем каталоге хранения.
Пока я это сделалследующее:
// the axios works properly
submit () {
const formData = new FormData();
formData.append('thumbnail', this.selectedImageFile);
formData.append('title', this.title)
formData.append('image', this.image)
formData.append('thumbnail', this.thumbnail)
formData.append('day', this.day)
if (this.$refs.form.validate()) {
axios.post('/event/store', formData)
.then((response) => {
console.log("event saved: " + response.data);
})
.catch((error) => {
console.log("error trying to save event: " + response);
})
}
},
В методе store моего контроллера я делаю следующее:
public function store(EventRequest $request)
{
$event = $this->event->create([
'title' => $request->title,
'image' => $request->image,
'thumbnail' => $request->thumbnail
]);
$this->event->createDir($request->file('image'), $request->file('thumbnail'), $request->title);
if($event) {
return response()->json('success');
}
return response()->json('An error accured');
}
Метод createDir в create в моем репозитории
public function createDir($image, $thumbnail, $title)
{
$image->store($title.'/image');
$thumbnail->store($title.'/thumbnail');
}
Работает сообщение Axios,$request->file('image')
и $request->file('thumbnail')
возвращают ноль, тогда как, если я вывожу данные формы в своей консоли, я получаю правильный журнал.
Я хотел бы сохранить имя файла в моей базе данных и создать папку в хранилище с обоими изображениями.
Я не уверен, как управлять этим с помощью FormData.