gpt4 book ai didi

php - 使用 Controller 下载 Laravel Excel

转载 作者:搜寻专家 更新时间:2023-10-31 21:57:46 24 4
gpt4 key购买 nike

所以我创建了一个 PHP Controller 来处理由 JS 发布的导出数据。问题是我可以看到它在控制台中创建了一些东西,但文件下载从未开始。我尝试使用 ->store (laravel excel) 并将其保存在导出文件夹中,但是当我尝试使用

return \Response::download($result);

它仍然不会开始下载。我遇到的问题只是开始下载。

Angular Controller

$scope.exportMatrix = function () {
var postData = {list: $scope.list, matrix: $scope.matrix};
$http({
method: 'POST',
url: '/export',
dataType: 'obj',
data: postData,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function (data) {
console.log(data);
}).error(function (data) {
console.log("failed");
});
}

路线

Route::post('/export', 'ExportController@export');

PHP Controller

<?php namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App;
use Excel;
use Response;
class ExportController extends Controller {

public function export()
{

$excel = App::make('excel');

Excel::create('Test', function($excel) {
$excel->setTitle('new awesome title');

$excel->sheet('Sheet', function($sheet) {
$sheet->fromArray(array(
array('data1', 'data2'),
array('data3', 'data4')
));
});


})->export('xlsx');
}

最佳答案

最后我用了FileSaver.js下载它发回的 blob,所以只需加载 FileSaver 并使用它 saveAs(blob)。

$http({
method: 'POST',
url: '/api/v1/download',
dataType: 'json',
data: {
data:data
},
responseType: 'arraybuffer',
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function (data) {
var blob = new Blob([data], {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});

saveAs(blob, title + ".xlsx");
}).error(function (data) {
console.log("failed");
});

我确保使用

responseType: arraybuffer

和另存为类型:

"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"

因为原因。

关于php - 使用 Controller 下载 Laravel Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31808416/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com