Laravel如何将EXCEL文件上传到数据库?

时间:2018-04-10 06:40:06

标签: php excel laravel upload

我的Laravel版本是5.6.and PHP是7。 我在互联网上找到了一些上传样本,但大多数都没有用。 有人能为我提供一个完整的例子吗? 我在互联网上发现了类似的案例。 Laravel 5.6 Excel and CSV import export using maatwebsite example

不幸的是,它也不起作用。

这是我的源代码。 blade.php

<form class="form-upload" method="POST" action="{{url('/excelUpload')}}" enctype="multipart/form-data">
            {{ csrf_field() }}
             <div class="form-group">
                <label for="file">excel upload</label>
                <input type="file" id="file" name="ex_file">
                <p class="help-block">!!!</p>
             </div>
              <div class="modal-footer">
                <button type="button" class="btn btn-default">cancel</button>
                <button type="submit" class="btn btn-primary" id="upload_f">submit</button>

Controller.php这样

public function excelUpload(Request $request){

         if($request->hasFile('StudentUploadSample')){
             return "yes i have a file";
         }
         return "nofile";
    }

但是,结果始终显示“ nofile ”。 我没有使用任何“使用”。我应该用什么吗? 网页上的示例也不使用任何“使用”。 另外,我读了一些网站,这些文件将放在存储文件夹下,但我找不到我的文件“StudentUploadSample.xlsx”在存储文件夹中。

有人可以提供一个完整的例子或如何解决这个问题吗?

4 个答案:

答案 0 :(得分:1)

您在控制器中使用了错误的文件名:

{{1}}

所以解决这个问题,并尝试检查。

答案 1 :(得分:1)

替换文件名,并使用参考站点获取正确的代码并附上说明。

参考网站如:http://www.expertphp.in/article/laravel-5-maatwebsite-import-excel-into-db-and-export-data-into-csv-and-excel

&#13;
&#13;
public function importFileIntoDB(Request $request){
    if($request->hasFile('sample_file')){
        $path = $request->file('sample_file')->getRealPath();
        $data = \Excel::load($path)->get();
        if($data->count()){
            foreach ($data as $key => $value) {
                $arr[] = ['name' => $value->name, 'details' => $value->details];
            }
            if(!empty($arr)){
                \DB::table('products')->insert($arr);
                dd('Insert Record successfully.');
            }
        }
    }
    dd('Request data does not have any files to import.');      
} 
&#13;
&#13;
&#13;

答案 2 :(得分:0)

<input type="file" id="file" name="ex_file">替换为<input type="file" id="file" name="StudentUploadSample">

你已经完成了。

答案 3 :(得分:0)

你可以使用laravel excel。

地址:https://github.com/Maatwebsite/Laravel-Excel

/ **  *我的控制器代码  *  * /

$ updateFile = $ request-&gt; file('update_file');

$ fileSize =(int)filesize($ updateFile);

$ fileExtension = $ updateFile-&gt; getClientOriginalExtension();

$ filePath = $ updateFile-&gt; getRealPath();

$ excelData = Excel :: load($ filePath) - &gt; get() - &gt; toArray();

或者您可以使用:https://phpspreadsheet.readthedocs.io/en/develop/