Xupload yii扩展名maxNumberOfFiles

时间:2013-09-22 13:43:30

标签: php activerecord yii yii-xupload

大家好我试图调整xupload ext的功能我想要做的是向用户呈现他们所有上传的图像,所以即使他们在上传图像后刷新页面,它仍然会在#上呈现modal-gallery table ..我知道如何使用CActiveRecord 问题是:

如何让我的表单知道用户已经有上传的图片?

我的表单代码是:

 <?php
    $this->widget('xupload.XUpload', array(
        'url' => Yii::app( )->createUrl("/UserAccountImages/upload",array('id'=>$model->id)),
        'model' => $imageForm,
        'htmlOptions' => array('id'=>'user-account-images-form'),
        'attribute' => 'file',
        'multiple' => true,
        'options' => array(
            'maxNumberOfFiles'=>8,
            'maxFileSize' => 3000000,
            'acceptFileTypes' => "js:/(\.|\/)(jpe?g|png|gif|bmp)$/i",
        ),
        'formView' => 'application.views.UserAccountImages._form',
    )    
    );
    ?>

1 个答案:

答案 0 :(得分:1)

所以在我看来,扩展程序不会在数据库中保存任何内容。因此,您需要某种方式来计算用户上传的文件数量,您可以通过查看保存在服务器上的文件来完成此操作,但您需要知道哪个文件是由哪个用户上传的。或者您可以为数据库保存用户上传的每个文件的条目。与用户和上传文件的数据有关。 (删除文件时,您需要删除此记录。)

如果您能够计算每个用户的文件数量,那么您应该可以设置'maxNumberOfFiles'=>8 - getFilecountOfCurrentUser() //<-The method you'll need to implement

然后显示表格中的文件......

你可以采取两种方式:

  1. 更改扩展视图,以便显示用户已上传的文件(位于extensions / view目录中的文件名为:“form.php”。
  2. 使用java脚本加载页面时,将文件添加到表中。
  3. 对于这两种工作方式,您需要知道哪个文件属于哪个用户。