Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多文件/图像上传CakePHP 3_Php_Cakephp_Cakephp 3.0 - Fatal编程技术网

多文件/图像上传CakePHP 3

多文件/图像上传CakePHP 3,php,cakephp,cakephp-3.0,Php,Cakephp,Cakephp 3.0,如何获取每个文件的所有数据 我不知道如何用CakePhp 3语法上传多个文件。我看过插件的帖子,但我想知道如何在不使用插件的情况下完成一项简单的任务 这是我的表格: <div class="havesAndWants form large-10 medium-9 columns"> <?= $this->Form->create($havesAndWant, ['type' => 'file']) ?> <fieldset>

如何获取每个文件的所有数据

我不知道如何用CakePhp 3语法上传多个文件。我看过插件的帖子,但我想知道如何在不使用插件的情况下完成一项简单的任务

这是我的表格:

<div class="havesAndWants form large-10 medium-9 columns">
    <?= $this->Form->create($havesAndWant, ['type' => 'file']) ?>
    <fieldset>
        <legend><?= __('Add Haves And Want') ?></legend>
        <?php
            echo $this->Form->input('contact_name');
            echo $this->Form->input('contact_email');
            echo $this->Form->input('contact_phone');
            echo $this->Form->input('contact_street_address');
            echo $this->Form->input('contact_city');
            echo $this->Form->input('contact_state');
            echo $this->Form->input('contact_zip');
            echo $this->Form->input('ad_street_address');
            echo $this->Form->input('ad_city');
            echo $this->Form->input('ad_state');
            echo $this->Form->input('ad_zip');
            echo $this->Form->input('ad_additional_info', ['label' => 'Ad Description']);
            echo $this->Form->input('ad_photos', ['type' => 'file', 'multiple' => 'multiple', 'label' => 'Add Some Photos']);
        ?>
    </fieldset>
    <?= $this->Form->button(__('Submit')) ?>
    <?= $this->Form->end() ?>
</div>

注意到所有信息都是一样的吗?

感谢CakePHPs支持部门的人员

我得到了问题的答案。我想我需要使用$post数组来设置文件信息的变量。在CakePhp文档中,它显示了这方面的一个示例,并且,它不是必需的。我取出这段代码:

echo $this->Form->input('ad_photos[]', ['type' => 'file', 'multiple' => 'true', 'label' => 'Add Some Photos']);
并在我的输入名称中添加了一个[]用于文件上载,如下所示:


然后,我能够获取每个文件的所有信息。

在模板/ctp文件中添加
[]
,有助于我进行相关的代码引用。谢谢大家:)
Array
(
    [name] => DPC.jpg
    [type] => image/jpeg
    [tmp_name] => C:\wamp\tmp\dpze123.tmp
    [error] => 0
    [size] => 2288982
)
Array
(
    [name] => DPC.jpg
    [type] => image/jpeg
    [tmp_name] => C:\wamp\tmp\dpze123.tmp
    [error] => 0
    [size] => 2288982
)
Array
(
    [name] => DPC.jpg
    [type] => image/jpeg
    [tmp_name] => C:\wamp\tmp\dpze123.tmp
    [error] => 0
    [size] => 2288982
)
Array
(
    [name] => DPC.jpg
    [type] => image/jpeg
    [tmp_name] => C:\wamp\tmp\dpze123.tmp
    [error] => 0
    [size] => 2288982
)
Array
(
    [name] => DPC.jpg
    [type] => image/jpeg
    [tmp_name] => C:\wamp\tmp\dpze123.tmp
    [error] => 0
    [size] => 2288982
)
$photo = [
                    'name' => $this->request->data['ad_photos']['name'],
                    'type' => $this->request->data['ad_photos']['type'],
                    'tmp_name' => $this->request->data['ad_photos']['tmp_name'],
                    'error' => $this->request->data['ad_photos']['error'],
                    'size' => $this->request->data['ad_photos']['size']
                ];
echo $this->Form->input('ad_photos[]', ['type' => 'file', 'multiple' => 'true', 'label' => 'Add Some Photos']);