Вопрос по file, php – PHP: удалить файл с любым расширением?

0

Когда пользователь загружает фотографию, он проверяет, есть ли у него она; и если они это сделают, я хочу удалить старый (который может иметь любое расширение), а затем поставить новый. Есть ли способ сделать это без получения старого расширения из базы данных? Код на данный момент:

        $del = $members->prepare("insert into profiles(userid, path, width, height, type, rtu, ext) values(?, ?, ?, ?, ?, ?, ?) 
                                    ON DUPLICATE KEY UPDATE path = ?, width = ?, height = ?, type = ?, rtu = ?, ext = ?, time = NOW()");
        $del->bind_param('sssssssssssss', $_SESSION['token'], $title, $file_info[0], $file_info[1], $file_info[2], $rh, $extension, 
        $title, $file_info[0], $file_info[1], $file_info[2], $rh, $extension);

        $del->execute();

        $new_file_name = "bb-x".$_SESSION['token'].".".$extension;

        if ($del->affected_rows > 0) {

            unlink('profiles/bb-x62'<any extension>);
        }

        $move_file = move_uploaded_file($file['tmp_name'], $upload_image_to_folder.$new_file_name);

Ваш Ответ

2   ответа
10

unlink('profiles/bb-x62'<any extension>);

Используйте эти две строки:

$file_pattern = "profiles/bb-x62.*" // Assuming your files are named like profiles/bb-x62.foo, profiles/bb-x62.bar, etc.
array_map( "unlink", glob( $file_pattern ) );

Это должно делать свое дело.

Error: User Rate Limit Exceeded Andy Lobel
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Andy Lobel
Error: User Rate Limit Exceeded
1

и найти в нем запись с тем же именем файла, вплоть до точки и расширения. Возьмите полное имя файла из данных сервера и удалите этот файл. Существует некоторый риск удаления очень похожего имени файла, но вы можете встроить проверки, чтобы определить, что имя файла такое же, за исключением расширения.

Похоже, что получение полного имени файла из базы данных может быть меньше проблем и загрузить на сервер ...

Error: User Rate Limit Exceededphp.net/globError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы