我想使用{
"summary": "Event Last Day of the Month",
"recurrence": [
"RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1;WKST=MO"
],
"start": {
"dateTime": "2017-08-31T6:00:00",
"timeZone": "timeZone"
},
"end": {
"dateTime": "2017-08-31T7:00:00",
"timeZone": "timeZone"
}
}
来编写文件。该文件可能非常大(> 100MB),所以我想利用一个流,所以我不要盲目地将所有内容放入内存。
我将要发出多个API请求,然后循环查看结果,因此我要回来的数据不是问题,它只限于合理的金额。
根据documentation,我需要使用:
Storage::put
但Storage::put('file.xml', $resource);
会在这里?
传统上,当使用PHP编写文件时,我使用$resource
,fopen
和fwrite
的组合来完成,以便逐行编写'。我通过循环遍历各种集合并使用各种API来构建文件,因此fclose
是 NOT 文件指针或文件引用,正如在其他地方所讨论的那样。文档。
那么,如何使用流和Laravel' $resource
逐行编写?
答案 0 :(得分:2)
Storage::put('file.xml', $resource);
但是$资源会在这里?
$ resource是您准备按代码写入磁盘的数据。
如果你想用循环编写文件,你必须使用ljubadr之前所写的Storage::append($file_name, $data);
我写了$ data但你可以在循环中使用你想要的任何名字。
答案 1 :(得分:0)
根据Laravel 5.3 documentation,查看自动流式传输
如果您希望Laravel自动管理给定的流式传输 将文件存入您的存储位置,您可以使用
putFile
或putFileAs
方法。此方法接受Illuminate\Http\File
或。{Illuminate\Http\UploadedFile
实例并将自动流式传输 该文件到您想要的位置:
您可以像这样上传带有流媒体的文件
$file = $request->file('file');
$path = \Storage::putFile('photos', $file);
您的表单输入
<input type="file" name="file">