В настоящее время я занимаюсь разработкой в OctoberCMS, которая использует Laravel и встроенную среду AJAX.
После отправки формы я пытаюсь собрать данные в CSV и в конечном итоге загрузить их в базу данных. я использую Laravel Excel v1.2.2 И код, который я написал, будет работать, только если CSV загружен на сервер, когда я ссылаюсь на URL. Мне нужно это, чтобы вместо этого загрузить CSV, который захвачен из формы. Вот мой код:
Excel::load('my/url.xlsx' function($archive)
{
$result = $archive->get();
foreach($result as $key => $value)
{
echo $value-> //Echoing some values here
}
})->get();
Я столкнулся с той же проблемой, пытаясь загрузить на конечную точку API с помощью Laravel-Excel. Для моих нужд я скомпрометировал и загрузил во временный каталог и сразу же прочитал оттуда. Ваш пример может выглядеть примерно так:
if (Input::hasFile('file_from_form')) {
Input::file('file_from_form')->move('uploads/my', 'url.xls'); // Moves to /public/uploads/my/url.xls
}
Excel::load('uploads/my/url.xls' ,function($archive)
{
$result = $archive->get();
foreach($result as $key => $value)
{
echo $value-> //Echoing some values here
}
})->get();
Вы можете удалить временные файлы после того, как вы сделали, если хотите. Я бы не стал все это хранить в одном месте, но сделал это просто для упрощения демонстрации. Для меня я проверил и перехватил входные данные от контроллера, а затем передал их в класс обработчика для чтения и обработки данных файлов.
Увидеть Laravel docs для разных методов доступны загружаемые файлы.
Других решений пока нет …