Php 我需要将视频文件扩展名更改为mp4

Php 我需要将视频文件扩展名更改为mp4,php,Php,我真的很感激有人这样做,并解释他们做了什么,这样我才能更好地理解 当前代码: $name = $_FILES['file']['name']; $extension = strtolower(substr ($name, strpos($name, '.') + 1)); $newextension = 'mp4'; $type = $_FILES['file']['type'];

我真的很感激有人这样做,并解释他们做了什么,这样我才能更好地理解

当前代码:

            $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

因此,您可以在将文件复制到最终位置后立即更改扩展名。

首先,最好使用函数检索扩展名:

$extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
$newfilename = basename($_FILES['file']['name'], $extension).$newextension;
然后,从文件名中筛选旧扩展名,并附加新扩展名:

$extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
$newfilename = basename($_FILES['file']['name'], $extension).$newextension;
编辑:我现在使用扩展名作为后缀来检索文件名,而不是substr和strrpos,这使得代码更短、更可读

并将文件复制到其新位置:

copy($_FILES['file']['tmp_name'], 'full/path/to/your/videos/'.$newfilename);

您无法轻松更改文件的扩展名。当你有一个.avi或其他东西时,你必须将其转换为mp4格式。@Stony-公平地说,他说他只是想更改扩展名,而不是转换格式--@admdrew:这是一个上传。。。这意味着他试图上传一个视频文件。。。如果您只想更改文件的扩展名,有更简单的方法