为了账号安全,请及时绑定邮箱和手机立即绑定

用多维数组存储多个图像

用多维数组存储多个图像

PHP
qq_遁去的一_1 2021-12-24 15:37:45
我正在尝试创建一个问题系统,允许用户创建动态数量的问题以及动态数量的答案(他们可以从基于简单文本的答案到基于图像的答案中进行选择)。在请求中包含以下图像文件集合:'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){ ... }正在返回nullwhenenctype被省略。它应该是一个数组,如果你使用了它就会是一个数组,$request->input()但这也是一个错误。

TL:博士;不要忘记enctype; 省略它是遇到各种问题的原因。


查看完整回答
反对 回复 2021-12-24
  • 1 回答
  • 0 关注
  • 147 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号