我正在尝试将Dropzone Extension添加到我在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小部件调用时它什么都不做。
如果您有解决方案,我真的很感激。如果有人能给我一个这个扩展的简单实例,我会很高兴。感谢。
答案 0 :(得分:1)
据我了解,dropzone逐个上传文件,而不是一起上传。所以$model->images
只保存一个图像对象。并且foreach循环失败。