回答編集履歴
2
追記
answer
CHANGED
@@ -11,20 +11,24 @@
|
|
11
11
|
|
12
12
|
---
|
13
13
|
|
14
|
+
> Symfony\Component\Debug\Exception\FatalThrowableError : Call to a member function getRealPath() on string
|
15
|
+
|
16
|
+
書いてある通りなんですが、 string型に`getRealPath`メソッドはありません。
|
17
|
+
|
18
|
+
> $file = Storage::disk('ftp')->get('sample.csv');
|
19
|
+
|
20
|
+
この時点で、リモートからファイルの内容をテキストとして取得します。
|
21
|
+
`$file`は`ファイルオブジェクト的ななにか`ではなく`string`です。
|
22
|
+
|
23
|
+
|
24
|
+
---
|
25
|
+
|
26
|
+
|
14
27
|
```
|
15
28
|
$file = Storage::disk('ftp')->get('sample.csv');
|
16
29
|
```
|
17
30
|
ここで一旦ファイルをメモリ上に載せてしまっているのがまずい気がします。
|
18
31
|
|
19
|
-
また
|
20
|
-
|
21
|
-
```
|
22
|
-
$csv = new \SplFileObject($file->getRealPath());
|
23
|
-
```
|
24
|
-
|
25
|
-
ここのgetRealPathがローカルなのかリモートなのかよくわかりませんね・・・
|
26
|
-
ちょっと安全に振り、一旦ローカルに保存してから処理を行う方法を考えましょう
|
27
|
-
|
28
32
|
laravelのstorageはflysystemでできているはずなのでreadStreamがある気がするので
|
29
33
|
|
30
34
|
|
1
追記
answer
CHANGED
@@ -7,4 +7,34 @@
|
|
7
7
|
ini_set('memory_limit', '512M');
|
8
8
|
```
|
9
9
|
|
10
|
-
とかでメモリの上限を上げてください。
|
10
|
+
とかでメモリの上限を上げてください。
|
11
|
+
|
12
|
+
---
|
13
|
+
|
14
|
+
```
|
15
|
+
$file = Storage::disk('ftp')->get('sample.csv');
|
16
|
+
```
|
17
|
+
ここで一旦ファイルをメモリ上に載せてしまっているのがまずい気がします。
|
18
|
+
|
19
|
+
また
|
20
|
+
|
21
|
+
```
|
22
|
+
$csv = new \SplFileObject($file->getRealPath());
|
23
|
+
```
|
24
|
+
|
25
|
+
ここのgetRealPathがローカルなのかリモートなのかよくわかりませんね・・・
|
26
|
+
ちょっと安全に振り、一旦ローカルに保存してから処理を行う方法を考えましょう
|
27
|
+
|
28
|
+
laravelのstorageはflysystemでできているはずなのでreadStreamがある気がするので
|
29
|
+
|
30
|
+
|
31
|
+
```
|
32
|
+
|
33
|
+
Storage::disk('local')->writeStream(
|
34
|
+
'temp',
|
35
|
+
Storage::disk('ftp')->readStream('sample.csv')
|
36
|
+
);
|
37
|
+
|
38
|
+
```
|
39
|
+
|
40
|
+
みたいな感じで一旦ローカルにコピーしてから処理してみてはどうでしょうか
|