hello. i have some problem while uloading song or image in php...if i have a song name like "05.Judaiyaan [MusikMaza.Com].mp3" then it have double dots...and i am unable to retrieve mp3 extension...can anyone help me out???

Recommended Answers

All 4 Replies

Member Avatar for diafol

Show your code.You may need to sanitize your filename.

Hi,

If you are running PHP version 5.3.6 or higher, this should work

<?php

function get_file_ext($filename){

        $info = new SplFileInfo($filename);
        return($info->getExtension());
}

to test the function above try..

echo get_file_ext('05.Judaiyaan [MusikMaza.Com].mp3');

that should output mp3

side notes: If you will be renaming the uploaded file, you need to get the filename without extension. To get the filename without extension, we can simply do it like this.

echo '<br/>'. basename('05.Judaiyaan [MusikMaza.Com].mp3', '.'.get_file_ext('05.Judaiyaan [MusikMaza.Com].mp3'));

the above should give us

05.Judaiyaan [MusikMaza.Com]

make sure to sanitize the filename as suggested above by Diafol.

my code is :

if(isset($_FILES["song_url"]['name']))
            { 
                    $fname =  explode('.',$_FILES["song_url"]['name']);
                    $ext = $fname[1];
                    $filen1 = uniqid().".".$ext;//$_FILES["ic_pic"]['name']; //file name
                    $path1  = 'songs/'.$filen1; //generate the destination path
                    move_uploaded_file($_FILES["song_url"]['tmp_name'],$path1);

             }
Member Avatar for diafol

The explosion is not the way to get the extension. Either use pathinfo or veedeoo's SPL. Example...

$f = "05.Judaiyaan [MusikMaza.Com].mp3";
echo pathinfo($f,PATHINFO_EXTENSION); 

$info = new SplFileInfo($f);
echo $info->getExtension();

Anyway...

<?php

if(isset($_FILES['song']))
{
    if($_FILES['song']['error'])
    {
        echo "Bad upload: error " . $_FILES['song']['error'];
    }else{
        $f = $_FILES['song'];

        $ext = pathinfo($f['name'],PATHINFO_EXTENSION);
        $filename = uniqid().".".$ext;
        $dest = 'uploads/' . $filename;
        move_uploaded_file($_FILES["song"]['tmp_name'], $dest);
        $downloader = "<a href='$dest'>$dest</a>";    
    }
}
?>

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<body>
<form enctype="multipart/form-data" method="post"  >
    <input type="file" name="song" />
    <input type="submit" value="Upload" name="uploadbutton" /> 
</form>
<?php if(isset($downloader)) echo $downloader;?>
</body>
</html>

Gives the link of the newly uploaded and renamed mp3 file.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.