-3

How do i give the image a random name instead of taking the name the image currently have when being uploaded?

   if(isset($_FILES['image'])){
  $errors= array();
  $file_name = $_FILES['image']['name'];
  $file_tmp =$_FILES['image']['tmp_name'];
  $file_type=$_FILES['image']['type'];
  $file_name_array = explode('.',$_FILES['image']['name']);
  $file_ext=strtolower(end($file_name_array));

  $expensions= array("jpeg","jpg","png");

  if(in_array($file_ext,$expensions)=== false){
     $errors[]="extension not allowed, please choose a JPEG or PNG file.";
  }


  if(empty($errors)==true){
     move_uploaded_file($file_tmp,"uploads254/".$file_name);
  }else{
     print_r($errors);
  }strong text
Funk Forty Niner
  • 74,450
  • 15
  • 68
  • 141
Evrim
  • 1
  • `rename()` function could help you after moving the file into uploads folder: http://php.net/manual/bg/function.rename.php – mitkosoft Aug 27 '18 at 12:33

3 Answers3

0

There are plenty ways to do it I recommend using uniqid()

Change

move_uploaded_file($file_tmp,"uploads254/".$file_name);

to

move_uploaded_file($file_tmp, "uploads254/" . uniqid(rand(), true) . $file_ext;
Robert
  • 19,800
  • 5
  • 55
  • 85
0

You can generate random string using php rand() function and use it as a name of your image file.

function getRandomImageName($length = 10) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $imageName = '';
    for ($i = 0; $i < $length; $i++) {
        $imageName .= $characters[rand(0, $charactersLength - 1)];
    }
    return $imageName;
}



if(isset($_FILES['image'])){
  $errors= array();
  $file_name = $_FILES['image']['name'];
  $file_tmp =$_FILES['image']['tmp_name'];
  $file_type=$_FILES['image']['type'];
  $file_name_array = explode('.',$_FILES['image']['name']);
  $file_ext=strtolower(end($file_name_array));
  $fileName = getRandomImageName(10);

  $expensions= array("jpeg","jpg","png");

  if(in_array($file_ext,$expensions)=== false){
     $errors[]="extension not allowed, please choose a JPEG or PNG file.";
  }


  if(empty($errors)==true){
     move_uploaded_file($file_tmp,"uploads254/".$fileName);
  }else{
     print_r($errors);
  }
akshaypjoshi
  • 1,245
  • 1
  • 15
  • 24
0

You can replace your value of the variable $file_name to rand() or any other name that you want to use.

Madhur Bhaiya
  • 28,155
  • 10
  • 49
  • 57
Kelvin
  • 1