开发者社区> 问答> 正文

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

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

move_uploaded_file()是将上载的文件保存到目录中的文件,我也猜过move_uploaded_file()是为其设置名称的文件。

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

我尝试在下面这样做:

$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"] . "
"; } 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"; } 我试过更改$ _FILES [“ file”] [“ name”]之类的变量,并用$ fileName替换它;变量,以便可以存储新名称。

展开
收起
保持可爱mmm 2020-05-10 18:34:18 484 0
1 条回答
写回答
取消 提交回答
  • 您只需在的第二个参数中更改文件名即可更改文件名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); 更改为反映您的问题,将根据当前时间产生一个随机数,并附加原始上传文件中的扩展名。您只需在的第二个参数中更改文件名即可更改文件名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); 更改为反映您的问题,将根据当前时间产生一个随机数,并附加原始上传文件中的扩展名。来源:stack overflow

    2020-05-10 18:34:34
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载