将 .csv 文件读入 Laravel 中的数组

新手上路,请多包涵

我在 Laravel 5 的这个目录中存储了一个 .csv 文件:

/存储/应用程序/data.csv

在此函数内部,我试图读取此文件的内容并从中提取几列,例如名称和城市到数组,示例代码:

 use Illuminate\Support\Facades\Storage;

public function get_data() {

 $file_n = Storage::url('data.csv');
 $file = fopen($file_n, "r");
 $all_data = array();
 while ( ($data = fgetcsv($file, 200, ",")) !==FALSE {

     $name = $data[0];
     $city = $data[1];
     $all_data = $name. " ".$city;

     array_push($array, $all_data);
  }
  fclose($file);
}

我在控制器中收到 ErrorException:

 fopen(/storage/data.csv): failed to open stream: No such file or directory

但是文件在那里。有没有更好的方法来做到这一点?

感谢您的观看!

原文由 Andre 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 827
1 个回答

正如以前的人指出的那样,您的问题在于路径。

您可以使用辅助函数 storage_path https://laravel.com/docs/5.3/helpers#method-storage-path

在您的情况下,它将像这样使用:

 storage_path('app/data.csv');

作为推荐,您可以使用此库来处理 CSV/Excel 文件,它非常易于使用: https ://github.com/Maatwebsite/Laravel-Excel

原文由 Valkzer 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏