如何在octobercms中显示来自多个输入文件的图像

时间:2018-11-30 11:50:28

标签: octobercms

我想在多个输入文件中显示上传的图像; 输入文件的格式定位到我的显示页面:


<form method="POST" action="{{ 'etape_4'|page }}" accept-charset="UTF8"  enctype="multipart/form-data">
        <input type="hidden" name="_handler" value="onTest">
                {{form_token()}}
                {{form_sessionkey()}}



 Upload photo: <input  name="photo[]" type="file" id="photo" multiple="multiple"  />



<div class=" col-sm-offset-3 col-sm-9">

 <button type="submit" class="btn btn-default">Suivant</button>


</div>


</form>

这是显示页面:


title = "etape_4"
url = "/etape_4"
is_hidden = 0
==
<?php



function onStart()
{

    $this['file'] = new \System\Models\File;
     $this['file']->fromFile(Input::file('photo'));

}

?>
==
<ul>
{%for image in file%}

<li>

{{image.path}}

<img src="{{image.path}}">
{%endfor%}

</li>
</ul>

当我选择图像并提交页面时,出现此错误:

  

is_file()期望参数1为有效路径,并给出数组

那么解决方案是什么? 请帮助我!

1 个答案:

答案 0 :(得分:1)

您似乎是uploading multiple files and treating them as single file Object

  

让正确的onStart方法支持多个文件

function onStart()
{
    $files = [];
    $multipleFiles = Input::file('photo');
    foreach($multipleFiles as $singleFile) {
        $fileModel = new \System\Models\File;
        $fileModel->fromFile($singleFile);
        $files[] = $fileModel;
    }
    $this['file'] = $files;
}
  

只需用此代码替换您的onStart代码即可。

如有疑问,请发表评论。