php - 按上传顺序检索上传的文件 yii php

标签 php file-upload yii

我正在尝试上传目录(/images/users/photos)中的图像文件并在 View 中显示上传的图像。这是工作。 这是我在 Controller 中上传图像文件的代码。

 public function actionImage() {
    $model = new ImageUpload ( 'user' );

    if (isset ( $_POST ['ImageUpload'] )) {
        $model->attributes = $_POST ['ImageUpload'];
        $model->image = CUploadedFile::getInstance ( $model, 'image' );
        if ($model->validate ()) {
            $path = realpath ( dirname ( $model->image ) );
            $imagePath = $path . Yii::app ()->params ['logoUploadPath'] . $model->image;
            $model->image->saveAs ( $imagePath );   
        } 
    } else {
        Yii::app ()->user->setFlash ( 'image-error', "Please select file!" );
    }
    $this->redirect ( 'index', array (
            'model' => $model 
    ) );
}

在 View 中,我使用以下代码显示上传的图像。

 <?php 
            $files = CFileHelper::findFiles(Yii::app()->basePath."/..".Yii::app()->params['logoUploadPath'],array('fileTypes'=>array('gif','png','jpg','jpeg'),'level'=>0));
            foreach ($files as $file)
            {   
                $upload = new ImageUpload();
                $image = basename($file);
                $src = Yii::app()->params['logoUploadPath'].$image;
                ?>
                <div class="img-wraplogo">
                    <?php  echo CHtml::image($src,$image,array("title"=>'Image', 'class'=>'existing-thumbnail-image')); ?>
                </div>  
<?php }}?>

问题是 图像文件在 View 中按字母顺序显示。但我想按上传顺序显示它们。

例如:我上传了两个文件,先是 B.png,然后是 A.png,我的 View 先显示 A.png,然后显示 B.png。但我想先显示 B.png 然后显示 A.png。

请帮我弄清楚上述场景或任何实现此目的的提示。 我上传的图片路径是/images/users/photos

最佳答案

正如您从 CFileHelper 中看到的那样方法:

public static function findFiles($dir,$options=array())
{
    $fileTypes=array();
    $exclude=array();
    $level=-1;
    extract($options);
    $list=self::findFilesRecursive($dir,'',$fileTypes,$exclude,$level);
    sort($list);
    return $list;
}

使用sort()函数。您不需要这种默认排序方法。但是,此方法不接受参数来修改排序功能。

因此,唯一的方法是编写您自己的从 CFileHelper 扩展的 CustomFileHelper 类,并重写您自己的按日期排序的函数。

如果您实际上编写了一些代码来扩展此类,但遇到问题,请使用您尝试过的代码发布一个新问题。

或者,您可以搜索 non-Yii PHP solution .

关于php - 按上传顺序检索上传的文件 yii php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25758927/

相关文章:

php - 仅从数据库中获取最后 10 个数据,但以相反的方式打印数组

php - 我无法使用 PHP 将很长的文本上传到 MySQL

javascript - 根据 base 64 内容确定图像类型

使用 HTTP header 上传 PHP 文件

php - 欧元符号显示为\u00e2\u0082\u00ac 和 ➡️

php - 函数式编程 - 使用所有参数调用函数

objective-c - 如何从GDataEntryYouTubeVideo获取YouTube视频ID?

php - Yii - 从 URL 中删除 'index'

Yii2-具有ActiveRecord的表别名

php - 过滤 gridview 后的 Yii2 导出