我想将一些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++;
请帮忙吗?
答案 0 :(得分:0)
我不认为临时文件有扩展名。
您可以手动将“gpx”添加到名称中:
$tmp = 0;
$filename = $tmp . ".gpx";
move_uploaded_file($_FILES['uploadfiles']['tmp_name'][$f], $filename);
$tmp++;
或者也许检查mimetype并制作出适当的扩展名。
或者使用$_FILES['uploadfiled']['name']
中的扩展名,在白名单中将其匹配,然后将其附加到您的最终文件名。
答案 1 :(得分:0)
文件名应具有扩展名。这对我来说很好找到扩展名:
$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++;
希望这有帮助。