简体   繁体   中英

Remove file extension on file upload

I'm writing the code for a website right now that's uploads images and then displays them gallery style. What I would like to happen is for the file name of the image to be entered into the site's database as the name of the image. However, just using $_FILES['images']['name']; gives me the file name but with the file extension attached at the end. How would I remove the file extension so I can use the file name by itself?

You can use the pathinfo() function ( docs ).

$example  = "my_file.jpeg";
$filename = pathinfo($example, PATHINFO_FILENAME);
echo $filename; // my_file

只需使用preg_replace:

$name = preg_replace('/(.+)\.\w+$/U', $_FILES['images']['name'], '$1');

You can use rename to remove the extension:

-> http://www.php.net/manual/en/function.rename.php

As my comment above implies, it depends on what you consider in the filename to be the name and what is the extension.

everything up to the last dot:

$filename = 'some.file.name.zip';
$name = substr($filename, 0, strrpos($filename, '.'));

everything up to the first dot:

$filename = 'some.file.name.zip';
$name = substr($filename, 0, strpos($filename, '.'));

they look the same, but the first one looks for the first dot from the end of the string and the second one from the start of the string.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM