【问题标题】:Yii: How to make Dropzone Extension work?Yii:如何让 Dropzone Extension 工作?
【发布时间】:2015-09-25 23:45:27
【问题描述】:

我正在尝试将 Dropzone 扩展添加到我在 Yii 中的应用程序中,它允许异步文件上传。 http://www.yiiframework.com/extension/yii-dropzone/

我做的第一件事是将下载的名为“dropzone”的文件夹放入我的扩展文件夹“C:\xampp\htdocs\site\protected\extensions”。

这是我在控制器中的操作代码 (MainController.php)

public function actionUpload()
{
    $test = rand(100000, 999999); //TEST
    var_dump($test);

    $model = new UploadFile;
    
    if(isset($_FILES['images'])){
        
        $model->images = CUploadedFile::getInstancesByName('images');
        
        $path = Yii::getPathOfAlias('webroot').'/uploads/';
        
        //Save the images
        foreach($model->images as $image)
        {
            $image->saveAs($path);
        }                    
    }
    
    $this->render('upload', array('model' => $model));
}

视图(upload.php)

<?php
$this->widget('ext.dropzone.EDropzone', array(
    'model' => $model,
    'attribute' => 'images',
    'url' => $this->createUrl('file/upload'),
    'mimeTypes' => array('image/jpeg', 'image/png'),
    'options' => array(),
));
?>

和模型(UploadFile.php)

<?php

class UploadFile extends CFormModel
{
    public $images;
    
    public function rules(){
        return array
        (
            array(
                "images",
                'file',
                'types' => 'jpg,gif,png',
            ),
        );
    }
}

当我运行它时,我可以看到 Dropzone 界面,我可以添加图像并拖动它们或从文件资源管理器中选择它们。 它显示了它们各自的进度条和一个成功标记,但上传目录中没有出现任何错误,IDE (Netbeans) 和 Chrome 控制台中都没有显示任何错误。

我做了一些打印测试,我意识到“actionUpload”中的代码只是第一次执行(当它绘制视图时),但是当它从 dropzone 小部件调用时它什么也不做。

如果您对此有解决方案,我将不胜感激。如果有人能给我一个这个扩展的简单工作示例,我会很高兴。谢谢。

【问题讨论】:

  • 您正在浏览模型 ($model->images) 的当前图像集,这将是第一次(并且总是)为空的,因为您从未为它设置任何值。而是通过 $_FILES['images']
  • 你说得对,我错过了。我已经编辑了控制器。无论如何它还没有工作,我还尝试打印一个测试随机数,正如您现在在代码中看到的那样。它只被打印了 1 次(当视图被渲染时)。所以我认为问题出在没有调用操作的小部件上。

标签: php yii upload widget dropzone.js


【解决方案1】:

据我了解,dropzone 会逐个上传文件,而不是全部一起上传。所以$model-&gt;images 只保存一个图像对象。并且 foreach 循环失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 2017-10-11
    • 2012-01-15
    相关资源
    最近更新 更多