PHP move_uploaded_file动态文件名-文件没有扩展名


PHP move_uploaded_file dynamic file name - files have no extension

我想上传一些GPX(技术上是XML)文件到服务器,并使用动态文件名(如0。gpx 1。GPX…)。我不知道如何用move_uploaded_file函数做到这一点,因为它只创建无扩展的文件。我得到一个'name'文件而不是'name'文件。gpx文件。

它不应该自动使用uploadef文件的PATHINFO_EXTENSION来创建具有正确扩展名的文件吗?

我试着这样调用这个函数:

$filename = 0;
move_uploaded_file($_FILES['uploadfiles']['tmp_name'][$f], $filename);
$filename++;

即使我尝试创建一个扩展名字符串它不工作:

$tmp = 0;
$ext = pathinfo($name, PATHINFO_EXTENSION);
$filename = $tmp + "." + $ext;
move_uploaded_file($_FILES['uploadfiles']['tmp_name'][$f], $filename);
$tmp++;

帮助吗?

文件名应有扩展名。这对我来说很好找到扩展:

$temp = explode(".", $_FILES["uploadfiles"]["name"]);
$extension = end($temp);
echo $extension; // Display the extension
$tmp = 0;
$filename = $tmp.".".$extension;
move_uploaded_file($_FILES['uploadfiles']['tmp_name'][$f], $filename);
$tmp++;

我不认为临时文件有扩展名。

您可以手动添加"gpx"到名称:

$tmp = 0;
$filename = $tmp . ".gpx";
move_uploaded_file($_FILES['uploadfiles']['tmp_name'][$f], $filename);
$tmp++;

或者可以检查mime类型并从中制作适当的扩展。

或者取$_FILES['uploadfiled']['name']中的扩展名,在白名单中匹配它,并将其附加到您的最终文件名。