Laravel 5 скачать файл Excel (maatwebsite / excel) в хранилище / экспорт через AJAX - PullRequest
0 голосов
/ 17 мая 2018

Я хочу скачать файл Excel, который хранится в хранилище / экспорт / путь. Я использовал Maatwebsite Excel для этого в laravel 5.5.

Код моего контроллера написан ниже:

ob_end_clean();
ob_start();
Excel::create($excelName, function($excel) use($adminUserDataExcelSelected) {
$excel->sheet('Sheet 1', function($sheet) use($adminUserDataExcelSelected) {
$sheet->fromArray($adminUserDataExcelSelected);
});
})->store('xlsx');
ob_flush();
return response()->json(['path' => $path]);

Мой код AJAX следующий;

$.ajax({
url: "/administrator/adminUser/exportselected/1/",
type:'POST',
data: {_token:_token, selected:selected, selectedField:selectedField},
success: function(data) { alert(data.path);
if($.isEmptyObject(data.error)){
}else{}
}
});

Когда я оповещаю / console.log data.path, я получаю следующее:

/ var / www / html / stmd_OLD / storage / export / Admin-Users2018-05-17 04: 46: 47

Мой вопрос: как можно мгновенно скачать файл Excel сейчас? Должен ли я вызвать другой метод AJAX здесь?

1 Ответ

0 голосов
/ 17 мая 2018

Вам необходимо заменить эту строку return response()->json(['path' => $path]); с этой строкой

return response()->download(storage_path('storage/export/AdminUsers2018-05-17 04:46:47.xlsx'));

Тогда вам просто нужно нажать на ссылку, которая вызывает функцию контроллера, которая возвращает это. Нет необходимости в дополнительном вызове AJAX.

Возможно, вам также понадобится добавить эту строку при запуске контроллера

use Illuminate\Support\Facades\Storage;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...