陳立強*_*陳立強 2 php arrays file laravel
我想存储文件数组,但我有一些问题,这是我的HTML代码
<div>
<input type="file" name tmp[]></input>
<textarea name="text[]"></textarea>
</div>
<div>
<input type="file" name tmp[]></input>
<textarea name="text[]"></textarea>
</div>
Run Code Online (Sandbox Code Playgroud)
和我的控制器
foreach ($request->input('text') as $key => $step){
$data = new Step;
if($request->hasFile('tmp[$key]'){
$file = $request->tmp[$key];
$extension = $file->getClientOriginalExtension();
$file_name = strval(time()).str_random(5).'.'.$extension;
$destination_path = public_path().'/step-upload/';
$data->img_url = $file_name;
$upload_success = $file->move($destination_path, $file_name);
}
$data->text=$step;
Run Code Online (Sandbox Code Playgroud)
但它没有用,我发现api不支持hasFile(数组),它只支持hasFile(string $ key)
并且我也删除if($ request-> hasFile('tmp [$ key]'){}但是发现无论有多少输入文件,它只捕获第一个.是否有任何解决方案?
假设您的HTML实际上是正确的,并且您使用了正确的enctype form
.
Laravel在函数中使用其点注释hasFile
函数.所以你想要做的是使用('tmp.' . $key)
而不是'tmp[$key]'
(这是不正确的,读取opon double vs single quotes).
所以,你的代码应该是这样的:
foreach ($request->input('text') as $key => $step) {
if ($request->hasFile('tmp.' . $key)) {
$file = $request->file('tmp.' . $key);
// work with $file
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3399 次 |
最近记录: |