我真的很感激有人这样做并解释他们做了什么,这样我才能更好地理解它。
当前代码:
$name = $_FILES['file']['name'];
$extension = strtolower(substr ($name, strpos($name, '.') + 1));
$newextension = 'mp4';
$type = $_FILES['file']['type'];
$temp = $_FILES['file']['tmp_name'];
$location = 'thelocation';
if ($extension!==$newextension)
{
$extension = $newextension;
如果无法做到这一点,有人可以告诉我一种如何将所有无.mp4文件转换为服务器端.mp4文件的方法,以及它是自动方法还是必须手动完成。
请记住,您正在使用一个临时文件,该文件需要从临时目录复制到最终位置,例如/videos/video.mp4。
因此,您将在将文件复制到最终位置后立即更改扩展名。
首先,你最好使用 pathinfo() 函数来检索扩展:
$extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
然后,您将从文件名中过滤旧扩展名,并附加新扩展名:
$newfilename = basename($_FILES['file']['name'], $extension).$newextension;
编辑:我现在使用带有扩展名的basename()作为后缀来检索文件名,而不是substr和strrpos,这使得代码更短,更具可读性。
并将文件复制到其新位置:
copy($_FILES['file']['tmp_name'], 'full/path/to/your/videos/'.$newfilename);