Ich habe mein Laravel -Projekt, das nach einigen Berechnungen Dateien (txt oder csv) speichert.
Ich bin auf der Suche nach einer bewährten Methode, wo diese Dateien gespeichert werden sollen ... /. Vielleicht/resources/csv/...?
Zweite Frage, wie wäre es der beste Weg, um diesen Pfad aus Klassen heraus zu referenzieren? Gibt es eine Laravel-Methode, die den Pfad zu Ressourcen zurückgibt?
/ resources ist nicht der beste Ort, da dieser Ordner für Quelldateien verwendet wird und normalerweise im Quellcode-Repository (z. B. git) gespeichert wird.
Dateien, die von der Anwendung generiert werden, befinden sich normalerweise im Ordner/storage. Erstellen Sie dort einfach einen Ordner / storage/csv.
Sie sollten diese Dateien niemals direkt aus Ihren Klassen referenzieren. Das Dateisystem von Laravel ist das, was Sie brauchen - mehr darüber können Sie hier lesen: http://laravel.com/docs/master/filesystem . Sie machen Operationen an den Dateien (wie Lesen, Schreiben, Voranstellen, Anhängen, Löschen, Verschieben, Abrufen aller Dateien und vieles mehr ...).
Beginnen Sie mit der Definition eines Dateisystems in Ihrer config/filesystems.php.
'disks' => [
'csv' => [
'driver' => 'local',
'root' => storage_path().'/csv',
],
],
Jetzt können Sie Ihre CSV-Dateien über Storage facade von überall in Ihrem Code lesen/schreiben:
Storage::disk('csv')->put('file.csv', $content);
$content = Storage::disk('csv')->get('file.csv');
Sie können Dateien im Speicherordner speichern.
Zum Beispiel:
Sie können einen Ordner namens csv im Speicherordner erstellen und den Pfad wie folgt abrufen:
storage_path().'/csv';
Sie finden den Speicherordner in
Laravel 4.2: App> Speicher
Laravel 5+: im Stammverzeichnis
public function storePhotos($data, Request $request, $requirement)
{
//setlocale(LC_ALL, 'en_US.UTF-8'); //for spanish names
$fileUploaded = $request->file('someVarFormName');
$folder = 'docs/';
$destinationFolder = date("Y-m");
$destinationFolderInServer = $folder.$destinationFolder;//.'/';
//$rules = array('file' => 'required|mimes:png,gif,jpeg,txt,pdf,doc,docx,exel,exelx'); //'required|mimes:png,gif,jpeg,txt,pdf,doc'
$validator = Validator::make(array('file' => $fileUploaded), $rules);
if($validator->passes())
{
$originalFileName = $fileUploaded->getClientOriginalName();
$fileName = pathinfo($originalFileName, PATHINFO_FILENAME);
$fileExtension = strtolower(pathinfo($originalFileName, PATHINFO_EXTENSION));
$linkFilenameTemp = strtolower(ToolText::createLink($fileName));
$linkFilename = $linkFilenameTemp.'.'.$fileExtension;
//get versioin number if filename exist
$i = 1;
while(file_exists($destinationFolderInServer.'/'.$linkFilename))
{
$linkFilename = $linkFilenameTemp.'('.$i.').'.$fileExtension;
$i++;
}
//* quitar / si falla
$upload_success = $fileUploaded->move($destinationFolderInServer, $linkFilename);
$dbRegOfFile = NULL;
if($requirement->have_file)
$dbRegOfFile = new mdl_TramitesRequisitosFiles();
else
$dbRegOfFile = mdl_TramitesRequisitosFiles::where('requisito_id', $requirement->id)
->get();
$dbRegOfFile->requisito_id = $data['requirementId'];
$dbRegOfFile->publisher = $data['publisher'];
$dbRegOfFile->publisher_entity = $data['publisher_entity'];
$dbRegOfFile->Nice_name = $fileName;
$dbRegOfFile->link_file_name = $linkFilename;
$dbRegOfFile->extension = $fileName;
$dbRegOfFile->size = $fileUploaded->getClientSize();
$dbRegOfFile->save();
}