/risorse non sono il posto migliore, in quanto questa cartella viene utilizzata per i file di origine e viene solitamente archiviata nel repository del codice sorgente (ad es. idiota).
I file che l'applicazione genera di solito finiscono da qualche parte nella cartella/storage - basta creare una cartella /storage/csv lì.
Non dovresti mai fare riferimento a quei file direttamente dalle tue classi. I filesystem di Laravel sono ciò di cui hai bisogno: puoi leggere di più su di loro qui: http://laravel.com/docs/master/filesystem. Fanno operazioni sui file (come leggere, scrivere, anteporre, aggiungere, eliminare, spostare, ottenere tutti i file e molti altri ...) molto più semplice.
Inizia con la definizione di un file system in config/filesystems.php
'disks' => [
'csv' => [
'driver' => 'local',
'root' => storage_path().'/csv',
],
],
Ora è possibile leggere/scrivere i file csv tramite bagagli facciata da qualsiasi punto del codice del genere:
Storage::disk('csv')->put('file.csv', $content);
$content = Storage::disk('csv')->get('file.csv');
fonte
2015-08-14 08:20:53
La mia attuale necessità è quella di creare il file e poi usarlo sulla stessa esecuzione. Non avere un riferimento di file "permanente". Ad ogni modo la soluzione che offri è fantastica. Grazie – koalaok
Se ho più sottodirectory nella cartella csv. Cosa suggerisci di fare per accedervi direttamente? Meglio definire voci più specifiche in config/filesystems.php? o concatenando come Storage :: disk ('csv'). "/ mysubdir /../" (non so ancora come scriverlo correttamente ..) – koalaok
Includi la cartella nel nome del file che passi a put/get, ad es. -> put ('cartella/file.csv', $ contenuto). –