我正在创建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);
}
}
帮助非常感谢。
答案 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