我正在嘗試創建一個問題系統,允許用戶創建動態數量的問題以及動態數量的答案(他們可以從基于簡單文本的答案到基于圖像的答案中進行選擇)。在請求中包含以下圖像文件集合:'image_opt' =>array:4 [▼ 0 => array:1 [▼ 0 => "file_q1_1" 1 => "file_q1_2" ] 1 => array:1 [▼ 0 => "file_q2_1" 1 => "file_q2_2" ] 2 => array:4 [▼ 0 => "file_q3_1" 1 => "file_q3_2" 2 => "file_q3_3" 3 => "file_q3_4" ] ]如何獲取每個文件并將其存儲在服務器中?到目前為止,我已經嘗試過這個$answer = new Answer();$file = $request->image_opt[$i][$j];$name = str_random(45) . $file->getClientOriginalExtension();$folder = '/uploads/answers/';$path = $file->storeAs($folder, $name, 'public');$answer->answer = $folder . $name;$answer->question_id = $question->id;$answer->max_weight = 0;$answer->weight = $request->image_weight[$i][$j];$answer->answer_type_id = $question->question_type_id;$answer->save();問題是......我無法獲取文件,根據錯誤,我當時只有字符串。Call to a member function storeAs() on string也試過哪個也沒用。$file = $request->file(image_opt[$i][$j]);如何從集合中獲取每個文件?$i 代表正在存儲的當前問題,$j 代表正在存儲的答案,img_opt 是文件的集合。
1 回答

素胚勾勒不出你
TA貢獻1827條經驗 獲得超9個贊
確保您的<form>
元素具有enctype="multipart/form-data"
在 Laravel 中正確處理圖片上傳的屬性。忽略這一點可能會導致問題,顯然就是這種情況。
<form method="POST" action="..." enctype="multipart/form-data">
這個錯誤:
在字符串上調用成員函數 storeAs()
是由于如何$request->image_opt[$i][$j]
默認string
為上傳圖像的值。這相當于調用$request->input("image_opt")[$i][$j]
,但這不是一個input()
變量,它是一個file()
變量。
下一個錯誤:
為 foreach() 提供的參數無效
出于同樣的原因,foreach($request->file("image_opt) AS $images){ ... }
正在返回null
whenenctype
被省略。它應該是一個數組,如果你使用了它就會是一個數組,$request->input()
但這也是一個錯誤。
TL:博士;不要忘記enctype
; 省略它是遇到各種問題的原因。
- 1 回答
- 0 關注
- 158 瀏覽
添加回答
舉報
0/150
提交
取消