yii2创建新文件夹并向其添加文件

时间:2015-11-13 06:35:52

标签: php yii2

我正在创建Yii2应用程序,允许用户下载教程和它的副标题。目前我可以单独进行,但是,我想要做的是创建一个带有视频名称的新文件夹,并在该文件夹中包含视频和字幕文件,然后创建一个zip并将其提供给用户下载。但我不知道该怎么做。我可以使用php ZipArchive压缩文件,但我不知道如何创建新文件夹并将这两个文件包含在其中。

我的下载操作是

public function actionDownload($id)
{
    // get all videos relevan for this video id 
    $video = TempVideo::findOne($id);
    $file = $video->path;

        if (file_exists($file)) 
        {
              Yii::$app->response->sendFile($file);
        } 
}

帮助非常感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用ZipArchive http://php.net/manual/en/zip.examples.php

或启动命令行:

system('zip filecompress.zip file1 file2 file3');

答案 1 :(得分:0)

我没有所有信息,但我认为需要看到这样的事情: 您需要使用mkdir()创建一个新目录(doc:http://php.net/manual/en/function.mkdir.php); 并使用copy()复制所需的文件 (文件:http://php.net/manual/en/function.copy.php

public function actionDownload($id)
{
    // get all videos relevan for this video id 
    $video = TempVideo::findOne($id);
    $file = $video->path;

        if (file_exists($file)) 
        {
              Yii::$app->response->sendFile($file);
              $new_video_path = '/path/to/save/dir';
              //create a new dir
              mkdir($new_video_path); 
              //copy the file to a new path
              copy($file,$new_video_path.'newfilename.mp4');
              copy('subtitle/pathe.txt',$new_video_path.'subtitle.txt');

        } 
}

之后您可以使用ZipArchive创建一个zip文件,该文档可在此处找到:http://php.net/manual/en/class.ziparchive.php