我正在建立一个网站,用于流式传输所选视频。 我可以让它显示文件列表。 我想要的是,当我从列表中选择一个文件时,它会将文件名粘贴到视频流的源链接中。我无法从列表中获取此文件名。有人可以帮帮我吗? 不要生气,我只是一个初学者。
<form action="" method="post">
<?php
//scans files and sorts by date
$files = glob('/media/*.MP4');
usort($files, function($a, $b) {
return filemtime($a) < filemtime($b);
});
// outputs a list of files, sorted by name
foreach($files as $file){
printf('<p><tr><td><input type="radio" id="%1$s" name="box"></td>
<td><label for="%1$s">%1$s</td></label>
<td><label for="%1$s">%2$s</td></label></tr></p>',
basename($file), date('F d Y, H:i:s', filemtime($file)));
}
?>
<input type="submit" name="submit1" value="Submit"><INPUT type="reset">
</form>
<video width="320" height="240" controls>
<source src="/media/<?php printf($_POST); ?>" type="video/mp4"> <--- I want to put the file name in this line
</video>
答案 0 :(得分:0)
根据这条线:
printf('<p><tr><td><input type="radio" id="%1$s" name="box"></td>
<td><label for="%1$s">%1$s</td></label>
<td><label for="%1$s">%2$s</td></label></tr></p>',
basename($file), date('F d Y, H:i:s', filemtime($file)));
您的输入名称为'box'
。您可以在表单提交后通过$_POST['box']
访问它,类似于:
<?php if(isset($_POST['box'])) { // This will hide the video prior to submission ?>
<video width="320" height="240" controls>
<source src="/media/<?php echo $_POST['box']; ?>" type="video/mp4">
</video>
<?php } ?>
<强>更新强>
不可否认,我应该早点看到这一点,但您的输入名称会重复多次。您不希望在同一表单中有两个共享相同名称的元素。你需要以某种方式区分它们,一般来说,你可以通过简单地使它成为一个数组来实现具有相同名称的许多元素:
printf('<p><tr><td><input type="radio" id="%1$s" name="box[]"></td>
现在,您应该能够在提交var_dump( $_POST['box'] )