Laravel + vue js загрузка каритнок на сервер
Вообщем всё очень просто есть форма создания отделов, я её через vuex отправляю на сервер, на сервер она сохраняет все данные и возвращает обратно и всё хорошо, но картинку мне нужно сохранять в storage/app/logo, я создал символьную ссылку прописал всё как надо, но путь до картики в бд вот такой:
D:\OpenServer\userdata\php_upload\php7BFA.tmp стало быть картинка в нужно место вообще не сохраняется, а теперь прикладываю код:
вот код в сохранении:
$section = new Sections();
$section->name = $request->name;
$section->description = $request->description;
if ($request->hasFile('logo')) {
$section->logo = Storage::putFile('public_image', new File($request->file('logo')));
}
$section->fill($request->except('users'));
$section->save();
return response()->json(['new_section' => $section], 200);
А вот как я отправляю данные:
let formData = new FormData();
formData.append('name', payload.name);
formData.append('description', payload.description);
formData.append('logo', payload.logo);
formData.append('users', payload.users);
await axios.post('/api/section', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
}).then((response) => {
console.log(response.data);
}).catch(error => {
commit('setError', error.message);
commit('setLoading', false);
throw error
});
Вообщем надесь на вашу помощь.
Ответы (1 шт):
Автор решения: Moonwolf45
→ Ссылка
Я нашел проблему, получилось вот так:
$section = new Sections();
$section->name = $request->name;
$section->description = $request->description;
if ($request->hasFile('image')) {
$path = $request->file('image')->store('logo');
$section->logo = '/' . $path;
}
$section->save();
if ($request->users) {
$usersArr = explode(',', $request->users);
$section->users()->attach($usersArr);
}
return response()->json(['new_section' => $section], 200);
Так он сохраняет всё как надо и куда надо.