Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP移动上传文件动态文件名-文件没有扩展名_Php_File_Upload - Fatal编程技术网

PHP移动上传文件动态文件名-文件没有扩展名

PHP移动上传文件动态文件名-文件没有扩展名,php,file,upload,Php,File,Upload,我想将一些GPX XML文件上传到服务器,并使用动态文件名(如0.GPX、1.GPX…)重命名它们。我不知道如何使用move_uploaded_file函数实现这一点,因为它只创建无扩展的文件。我得到一个“name”文件,而不是一个“name.gpx”文件 它不应该自动使用uploadef文件的PATHINFO_扩展名来创建具有正确扩展名的文件吗 我尝试过这样调用函数: $filename = 0; move_uploaded_file($_FILES['uploadfiles']['tmp_n

我想将一些GPX XML文件上传到服务器,并使用动态文件名(如0.GPX、1.GPX…)重命名它们。我不知道如何使用move_uploaded_file函数实现这一点,因为它只创建无扩展的文件。我得到一个“name”文件,而不是一个“name.gpx”文件

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

我尝试过这样调用函数:

$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++;

请帮忙?

我认为临时文件没有扩展名

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

$tmp = 0;
$filename = $tmp . ".gpx";
move_uploaded_file($_FILES['uploadfiles']['tmp_name'][$f], $filename);
$tmp++;
或者检查mimetype并从中创建适当的扩展


或者在$_FILES['uploadfield']['name']中使用扩展名,在白名单中进行匹配,并将其附加到最终文件名中。

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

$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++;

希望这有帮助。

如果您想知道/询问它是否会为您创建扩展,答案是否。请阅读手册,谢谢,这对我很有用。我认为我必须使用“+”来创建一个字符串,但你做对了。请在白名单中匹配扩展名,因为任何人都可以上传php脚本或其他讨厌的东西。这个web应用程序只是大学的一个练习,所以我只需要在localhost上使用它。不过,我已经在白名单中找到了它,只是没有必要在这里添加我的问题。无论如何谢谢你。很高兴能帮助你,PHP中的连接使用点。用“+”对我不起作用,我自己也试过了。当我像上面提到的UserProg那样做时,它就工作了。无论如何,谢谢你。