Wie kann ich eine Ressource verwenden, um Zeile für Zeile zu schreiben, aber immer noch Laravels eingebauten Speicher zu verwenden?

9

Ich möchte Storage::put verwenden, um eine Datei zu schreiben. Die Datei ist möglicherweise sehr groß (& gt; 100 MB), daher möchte ich einen Strom verwenden, damit ich nicht blind alles in den Speicher ablege.

Ich werde mehrere API-Anfragen stellen und dann ihre Ergebnisse durchgehen, so dass die Daten, die ich zurückbekomme, kein Problem darstellen, sondern auf sinnvolle Mengen beschränkt sind.

Laut der Dokumentation muss ich Folgendes verwenden:

%Vor%

Aber was wäre $resource hier?

Traditionell habe ich beim Schreiben von Dateien mit PHP eine Kombination aus fopen , fwrite und fclose erstellt, um "Zeile für Zeile" zu schreiben. Ich baue die Datei auf, indem ich verschiedene Collections durchlaufen und verschiedene APIs benutze, so dass $resource NOT ein Dateizeiger oder eine Dateireferenz ist, wie an anderer Stelle in der Dokumentation erwähnt.

Also, wie kann ich Zeile für Zeile mit einem Stream und Laravels Storage schreiben?

    
Mike 17.10.2017, 16:16
quelle

2 Antworten

1
%Vor%      

Aber was wäre $ ressource hier?

$ resource ist Ihre Daten, die Sie vorbereiten, um durch Code auf die Festplatte zu schreiben.

Wenn Sie die Datei mit einer Schleife schreiben wollen, müssen Sie die Storage::append($file_name, $data); verwenden, wie zuvor von ljubadr geschrieben

Ich habe $ data geschrieben, aber Sie können einen beliebigen Namen für eine Variable innerhalb einer Schleife verwenden.

    
Alviero 07.11.2017, 10:13
quelle
0

Dokumentation zu Laravel 5.3 , schauen Sie in Automatisches Streaming

  

Wenn Sie möchten, dass Laravel das Streaming automatisch verwaltet   Datei zu Ihrem Speicherort, können Sie die putFile oder putFileAs verwenden   Methode. Diese Methode akzeptiert entweder Illuminate\Http\File oder    Illuminate\Http\UploadedFile Instanz und wird automatisch streamen   die Datei an Ihren gewünschten Ort:

Sie können Datei mit Streaming wie folgt hochladen

%Vor%

Wo Ihre Formulareingabe ist

%Vor%     
ljubadr 18.10.2017 19:59
quelle

Tags und Links