如何在PHP中上传文件时更改文件名

时间:2014-08-13 12:45:39

标签: php

我的上传文件脚本在这里工作。

只想知道我如何更改它以将文件名更改为以下格式:

  

$var_####.ext其中$var是我设置的变量,####是生成的随机4位数字,而ext是原始文件名的扩展名

已经看过关于此的其他帖子,但不太确定如何将所有内容整合到我的脚本中

$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"] < 5000000)
&& in_array($extension, $allowedExts)) {
  if ($_FILES["file"]["error"] > 0) {
    header( 'Location: photo_upload.php?error=1&jobno=' . $jobno) ;
  } else {

    if (file_exists("upload_images/" . $_FILES["file"]["name"])) {
     header( 'Location: photo_upload.php?error=2&jobno=' . $jobno) ;
    } else {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload_images/" . $_FILES["file"]["name"]);

谢谢!

4 个答案:

答案 0 :(得分:2)

只需编辑你的move_uploaded_file

move_uploaded_file($_FILES["file"]["tmp_name"], "upload_images/" . $var . '_' . rand(1000, 9999) . '.' . pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION);

答案 1 :(得分:2)

而不是

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

你必须这样做:

move_uploaded_file($_FILES["file"]["tmp_name"],
"upload_images/" . THE_NAME_YOU_WANT);

答案 2 :(得分:0)

$extension="type_of_file";    //whatever type you want
$var="file_name_you_want".".".$extension;  // put whatever name you want to set
move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload_images/" . $var);    

答案 3 :(得分:0)

而不是

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

只需用

重命名文件名即可
$_FILES["file"]["name"])

请参阅以下代码重命名文件

$temp = explode(".",$_FILES["file"]["name"]);
$newfilename="new_file".end($temp);
move_uploaded_file($_FILES["file"]["tmp_name"],
upload_images/" . $newfilename);