问题描述
我已经用输入文件实现了 Maatwebsite/Laravel-Excel,这很好用。
public function import(Request $request)
{
$path = $request->file('file');
if (!is_file($path))
{
dd("file excel missing");
}
Excel::import(new ProductsSerialsImport,request()->file('file'));
return redirect()->back()->with('success','File updated!');
}
Route::post('products_serials/import','ProductsSerialsController@import')->name('products_serials.import');
我做了一些这样的事情,但不明白在不通过输入文件的情况下我可以在哪里接收excel文件。
public function import(Request $request)
{
$path = "storage/excel/file.xlsx";
if(!File::exists($path)) {
dd("missing excel file!");
}
Excel::import(new ProductsSerialsImport,$path);
return redirect()->back()->with('success','File updated!');
}
如何从路由更新 excel 文件 => 'products_serials/import' 通过输入文件跳过上传文件?
提前致谢!
解决方法
有一个构造函数。从 docs 会是这样
ProductsSerialImport.php
int arr[] = {2,6,8,13},n = 4
long long int ans=1;
long long int M=1000000007;
for(int i=0;i<n;i++) // Calculating LCM
{
for(int j=i+1;j<n;j++)
{
arr[j]=arr[j]/__gcd(arr[i],arr[j]);
}
ans=((ans%M)*(arr[i]%M))%M;
}
return (ans)%M;
YourController.php
class ProductsSerialImport implements ToCollection {
private $file;
public function __construct($file)
{
$this->file = $file;
}
public function collection(Collection $row)
{
foreach($row as $r) {
Model::create(['name',$this->file]); // Just for example
}
}
}