Народ, хелпаните, плиз, по такой теме:
Я заливаю файл на сервер посредством Vue скрипта передающего его в Laravel.
Вот метод Vue:
import { ref } from 'vue';
import axios from 'axios';
const fileInputRef = ref(null);
const uploadXlsx = (event) => {
event.preventDefault();
const file = fileInputRef.value.files[0];
const formData = new FormData();
formData.append('lots', file);
axios.post('/auth/tools/uploadXlxsFile', formData)
.then(response => {
console.log(response.data);
})
.catch(error => {
console.log(error.data);
});
return false;
};
А вот принимающий метод Laravel:
public function uploadXlxsFile(Request $request)
{
if ($request->hasFile('lots')) {
$file = $request->file('lots');
$file->storeAs('public', "lots.xlsx");
return response()->json(['message' => 'File uploaded successfully']);
} else {
return response()->json(['message' => 'No file found in the request'], 200);
}
}
Фишка в том, что инструкция
$file->storeAs('public', "lots.xlsx");
приводит к перезагрузке страницы(если ее закомментить, то перезагрузки не происходит), а мне её нужно избежать. Как это сделать, не могу понять.
p.s. Отправка файла происходит из vuexy
<VCardText>
<VBtn color="success" @click.prevent="uploadXlsx($event)" style="text-transform: none;">
Upload file
</VBtn>
</VCardText>