使用Varien_File_Uploader上传多个文件

Moh*_*sal 3 php file-upload magento

这个问题与我上一个问题有关,我在admin中使用模板文件创建了一个选项卡表单.模板文件的内容是:

<div class="entry-edit">
    <div class="entry-edit-head">
        <h4 class="icon-head head-edit-form fieldset-legend">Images</h4>
    </div>
    <div class="fieldset">
        <div class="hor-scroll">
            <table class="form-list container">
                <tr class="wrapper-tr">
                    <td class="value">
                        <input type="file" name="images[]"/>
                    </td>
                    <td class="label">
                        <span class="remove">Remove</span>
                    </td>
                </tr>
            </table>
            <input type="button" class="add" value="Add Image"/>
        </div>
    </div>
</div>

<script>
    jQuery(document).ready(function() {
        jQuery('.add').click(function() {
            var wrapper = "<tr class='wrapper-tr'>" +
                    "<td class='value'><input type='file' name='images[]'></td>" +
                    "<td class='label'><span class='remove'>Remove</span></td>" +
                    "</tr>";
            jQuery(wrapper).find('.remove').on('click', function() {
                jQuery(this).parent('.wrapper-tr').remove();
            });
            jQuery(wrapper).appendTo('.container');
        });
        jQuery('.container').on('click', 'span.remove', function() {
            if (jQuery('.wrapper-tr').length > 1) {
                jQuery(this).parents('.wrapper-tr').remove();
            } else {
                alert('at least one image need to be selected');
            }
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

用于上传多个文件.

但是因为我的输入类型名称就是images[]为什么在我的控制器中saveAction()我无法使用以下内容上传文件Varien_File_Uploader:

$uploader = new Varien_File_Uploader('images');
Run Code Online (Sandbox Code Playgroud)

我应该在Varien_File_Uploader构造函数中传递什么值才能上传文件?

更新
我尝试记录并发现此警告:

警告:file_exists()要求参数1是有效路径,在第150行的/var/www/mageqb/lib/Varien/File/Uploader.php中给出数组

我控制器中的代码是:

foreach ($_FILES['images']['name'] as $key => $image) {
    Mage::log('looping');
    if (empty($image)) {
        Mage::log('continue');
        continue;
    }
    try {
        Mage::log('uploading');
        /* Starting upload */
        $uploader = new Varien_File_Uploader('images');

        // Any extention would work
        $uploader->setAllowedExtensions(array('jpg', 'jpeg', 'gif', 'png'));
        $uploader->setAllowRenameFiles(true);

        // Set the file upload mode
        // false -> get the file directly in the specified folder
        // true -> get the file in the product like folders
        //  (file.jpg will go in something like /media/f/i/file.jpg)
        $uploader->setFilesDispersion(false);

        // We set media as the upload dir
        $path = Mage::getBaseDir('media') . DS . 'authors' . DS;
        $img = $uploader->save($path, $_FILES['images']['name'][$key]);
        Mage::log($img['file']);
    } catch (Exception $e) {
        echo $e->getMessage();
        Mage::log($e->getMessage());
    }
}
Run Code Online (Sandbox Code Playgroud)

Moh*_*sal 12

这是预期的代码

$uploader = new Varien_File_Uploader(
        array(
    'name' => $_FILES['images']['name'][$key],
    'type' => $_FILES['images']['type'][$key],
    'tmp_name' => $_FILES['images']['tmp_name'][$key],
    'error' => $_FILES['images']['error'][$key],
    'size' => $_FILES['images']['size'][$key]
        )
);
Run Code Online (Sandbox Code Playgroud)