【发布时间】:2015-08-04 11:44:38
【问题描述】:
所以我创建了一个 PHP 控制器来处理由 JS 发布的导出数据。问题是我可以看到它在控制台中创建了一些东西,但文件下载永远不会开始。我尝试使用 ->store (laravel excel) 并将其保存在导出文件夹中,但当我尝试使用时再次尝试使用
return \Response::download($result);
它仍然不会开始下载。我遇到的问题只是开始下载。
角度控制器
$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 控制器
<?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');
}
【问题讨论】:
-
不是
download('xlsx')不是export? -
我忘了提到我尝试下载('xlsx')以及导出这从我的 JS 控制器成功中抛出了一堆“QĿi!��K�y3�J
-
好吧,我很确定这是因为我将响应发送回 javascript 控制器,然后下载需要由 JS 启动(例如使用 new Blob([data], {type : 'application/xls'});) 所以我想我的后续问题是如何使用 laravel/excel 和角度数据创建一个有效的导出控制器。因为它似乎使事情变得比他们需要的复杂得多。我想将角度数据发送到导出控制器并使用 laravel excel 创建和下载它。
-
这个问题你解决了吗?我也有同样的问题。
标签: php angularjs laravel export laravel-excel