我在 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 许可协议
正如以前的人指出的那样,您的问题在于路径。
您可以使用辅助函数 storage_path https://laravel.com/docs/5.3/helpers#method-storage-path
在您的情况下,它将像这样使用:
作为推荐,您可以使用此库来处理 CSV/Excel 文件,它非常易于使用: https ://github.com/Maatwebsite/Laravel-Excel