如何在将上传的文件保存到目录之前重命名?

下面是我用来将文件上传到目录中的代码。工作正常。我的主要问题是:

是将上载的文件保存到目录中的文件,我也猜过

是为其设置名称的文件。

如何将文件名更改为随机数?

我尝试在下面这样做:

$allowedExts = array("gif", "jpeg", "jpg", "png");

$temp = explode(".", $_FILES["file"]["name"]);

$extension = end($temp);

if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"] < 100000) && in_array($extension, $allowedExts)) {

if ($_FILES["file"]["error"] > 0) {

echo "Return Code: " . $_FILES["file"]["error"] . "<br>";

} else {

$fileName = $temp[0] . "." . $temp[1];

$temp[0] = rand(0, 3000); //Set to random number

$fileName;

if (file_exists("../img/imageDirectory/" . $_FILES["file"]["name"])) {

echo $_FILES["file"]["name"] . " already exists. ";

} else {

move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $_FILES["file"]["name"]);

echo "Stored in: " . "../img/imageDirectory/" . $_FILES["file"]["name"];

}

}

} else {

echo "Invalid file";

}

我试过更改 变量,并用 替换它

变量,以便可以存储新名称。

回答:

您只需在的第二个参数中更改文件名即可更改文件名move_uploaded_file

代替

move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $_FILES["file"]["name"]);

采用

$temp = explode(".", $_FILES["file"]["name"]);

$newfilename = round(microtime(true)) . '.' . end($temp);

move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $newfilename);

更改为反映您的问题,将根据当前时间产生一个随机数,并附加原始上传文件中的扩展名。

以上是 如何在将上传的文件保存到目录之前重命名? 的全部内容, 来源链接: utcz.com/qa/423879.html

回到顶部