Home > database >  rename file while uploading with php
rename file while uploading with php

Time:10-12

I have a php script which uploads files:

for($index = 0;$index < count($_FILES['files']['name']); $index  ){
        
    // File name
    $filename = $_FILES['files']['name'][$index];
            
    // File path
    $path = '../pdf/'.$filename;
                
    // Upload file
    if(!move_uploaded_file($_FILES['files']['tmp_name'][$index],$path)){
        // ERROR
        exit;
    }

This works fine! But I would like to modify the filename while uploading:

For example: I uploading a "upload.pdf" file. But I would like to get the name "upload_2021.pdf"

How can I realize it?

CodePudding user response:

I found a solution !!

$path = '../pdf/'.$filename;
$extension = pathinfo($path, PATHINFO_EXTENSION);
$name = pathinfo($path, PATHINFO_FILENAME);

CodePudding user response:

From what I can see, the only thing you need to do is change the $path variable.

Bare in mind, that what you are showing here is not a safe and secure upload script. You are not doing any file and mime-type validation what so ever. There is nothing preventing your users from uploading harmful files. Together with not checking for duplicate files and some other edge cases, think twice before putting this into production.

for($index = 0;$index < count($_FILES['files']['name']); $index  ){
    // File name
    $filename = $_FILES['files']['name'][$index];

    $parts = explode(".", $filename);
    $year = date("Y");
    // File path
    $path = '../pdf/'.$parts[0] . '_' $year . '.' . $parts[count($parts)-1];
            
    // Upload file
    if(!move_uploaded_file($_FILES['files']['tmp_name'][$index],$path)){
        // ERROR
        exit;
    }
}

CodePudding user response:

a short example:


$temp = explode(".", $_FILES["file"]["name"]);
$newfilename = round(microtime(true)) . '.' . end($temp);
move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $newfilename);
  •  Tags:  
  • php
  • Related