首页 > 解决方案 > YII2 下载表单后端电影无压缩

问题描述

用户从前端上传文件,之后管理员必须下载视频,但是当我尝试下载它时,相同的视频被压缩......当我下载大小为 10MB 时,视频的实际大小为 28MB,电影是破碎的 ...

这是下载代码:

 <a href="<?=$video->getFilePath($video->id)?>" download="<?=$video->video_link?>" class="btn btn-danger" role="button">download</a>

后端模型:

 public function getFilePath($id){
    if(isset($id)) {
        $video = ChildVideo::findOne($id);
        if ($video) {
            $path = Yii::$app->urlManagerFrontend->baseUrl . "/child_video/" . $this->getImageFolderName($id) . "/" . $video->video_link;
        }
    }
}

在这里我上传一个视频

 $modelVideo->setVideoFolder();
            $modelVideo->videoFiles = UploadedFile::getInstances($model, 'videoFiles');
            if (isset($modelVideo->videoFiles) and count($modelVideo->videoFiles) > 0) {
                foreach ($modelVideo->videoFiles as $key => $file) {
                    $sqllastVideo = "SELECT id FROM child_video WHERE child_id=".$model->user_id." ORDER BY id DESC LIMIT 1";
                    $lastVideo = Yii::$app->db->createCommand($sqllastVideo)->queryOne();
                    $countlastVideo = ChildVideo::find()->where('child_id=:child_id',[':child_id'=>$model->user_id])->orderBy('id DESC')->all();

                    if(count($countlastVideo)<=1 or $lastVideo[0]['id'] = Null) {
                        $orderlastVideo = 1;
                    }else{
                        $orderlastVideo = $lastVideo['id'] + 1;

                    }

                    $file->saveAs(Yii::getAlias('@frontend/web') . '/child_video/'.$model->getImageFolderName().'/video_' . $model->user_id . '_' . ($orderlastVideo) . '.' . $file->extension);
                    $pic = Yii::getAlias('@frontend/web') . '/child_video/'.$model->getImageFolderName().'/video_' . $model->user_id . '_' . ($orderlastVideo) . '.' . $file->extension;
                    $modelVideos = new ChildVideo;
                    $modelVideos->child_id = $model->user_id;
                    $modelVideos->video_link = 'video_'. $model->user_id . '_' . ($orderlastVideo) . '.' . $file->extension;
                    $modelVideos->active = 3;
                    $modelVideos->save(false);
                    Yii::$app->session->setFlash('success', Yii::t('app', 'app.Your video is upload successfully!'));
                }
            }

标签: htmldownloadyii2yii2-advanced-app

解决方案


推荐阅读