Я создаю приложение 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);
}
}
помогает получить высокую оценку.
Вы можете использовать ZipArchive http://php.net/manual/en/zip.examples.php
или запустить командную строку с помощью:
system('zip filecompress.zip file1 file2 file3');
У меня нет всей информации, но я думаю, что ей нужно написать что-то вроде этого: вам нужно создать новый каталог с помощью mkdir()
(doc: http://php.net/manual/en/function.mkdir.php); и скопируйте необходимые файлы с помощью copy()
(doc: 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');
}
}
и после этого вы можете создать zip файл с ZipArchive
который можно найти здесь: http://php.net/manual/en/class.ziparchive.php