programing

Wordpress 백엔드 내에서 업로드하는 동안 파일 이름 바꾸기

showcode 2023. 3. 11. 09:38
반응형

Wordpress 백엔드 내에서 업로드하는 동안 파일 이름 바꾸기

업로드 진행 중에 파일 이름을 변경할 수 있는 방법이 있습니까?Wordpress 3.0백엔드?특히 이미지에 일관된 파일 이름을 붙이고 싶습니다.

원래의 파일명의 12자리(+-)의 해시값이나 그 비슷한 것이 최고라고 생각합니다.좋은 의견이라도 있나?

안부 전해요

하지만 파일을 업로드하기 전에 그렇게 하는 것이 더 쉬울 것입니다.

그것에 대해서는 잘 모르겠습니다.- 이것은 꽤 쉬워 보입니다.

/**
 * @link http://stackoverflow.com/a/3261107/247223
 */
function so_3261107_hash_filename( $filename ) {
    $info = pathinfo( $filename );
    $ext  = empty( $info['extension'] ) ? '' : '.' . $info['extension'];
    $name = basename( $filename, $ext );

    return md5( $name ) . $ext;
}

add_filter( 'sanitize_file_name', 'so_3261107_hash_filename', 10 );

이 필터는 원래 파일 이름의 32자 해시를 생성하여 파일 확장자를 유지합니다.이걸 이용해서 좀 자를 수 있어substr()당신이 원한다면요

이 필터는 파일이 서버의 임시 디렉토리에 업로드된 후 크기가 조정되어 업로드 폴더에 저장되기 전에 실행됩니다.

새로 해시된 파일이 이미 존재하는 파일과 동일한 경우 WordPress는 더 이상 충돌이 없을 때까지 파일 이름에 증분 숫자를 추가하려고 시도합니다.

WordPress 플러그인

<?php

/**
 * Plugin Name: Hash Upload Filename
 * Plugin URI:  http://stackoverflow.com/questions/3259696
 * Description: Rename uploaded files as the hash of their original.
 * Version:     0.1
 */

/**
 * Filter {@see sanitize_file_name()} and return an MD5 hash.
 *
 * @param  string $filename
 * @return string
 */
function so_3261107_hash_filename( $filename ) {
    $info = pathinfo( $filename );
    $ext  = empty( $info['extension'] ) ? '' : '.' . $info['extension'];
    $name = basename( $filename, $ext );

    return md5( $name ) . $ext;
}

add_filter( 'sanitize_file_name', 'so_3261107_hash_filename', 10 );

http://wpapi.com/change-image-name-to-wordpress-post-slug-during-upload/

BTW:

필터 추가 대상sanitize_file_name완전히 틀렸다sanitize_file_name()function은 문자열을 포맷하는 도우미 함수이며 플러그인이나 테마 등의 다른 곳에서 사용할 수 있습니다.

function wp_modify_uploaded_file_names($file) {
    $info = pathinfo($file['name']);
    $ext  = empty($info['extension']) ? '' : '.' . $info['extension'];
    $name = basename($file['name'], $ext);

    $file['name'] = uniqid() . $ext; // uniqid method
    // $file['name'] = md5($name) . $ext; // md5 method
    // $file['name'] = base64_encode($name) . $ext; // base64 method

    return $file;
}

add_filter('wp_handle_upload_prefilter', 'wp_modify_uploaded_file_names', 1, 1);

플러그 인을 만들었습니다.고객들이 특수 캐릭터로 이미지를 올리려고 하는 것이 너무 힘들어서 그랬다.

http://wordpress.org/plugins/file-renaming-on-upload

같은 것을 실장했습니다.원래의 파일명보다 랜덤한 파일명을 원했습니다.사용하고 있는 사이트는 사진 전용으로, 모든 파일이 1개의 디렉토리에 있기 때문입니다.

나는 다음과 같이 했다.

md5gcip . uniqid ( mt_rand true true ) . $ext ;

제대로 할 수 있는 플러그인을 찾다가 결국 직접 만들었어요.제 블로그 http://www.meow.fr/media-file-renamer에서 이용하실 수 있습니다.사용하시는 분은 피드백을 주세요:) 꼭 도움이 되었으면 좋겠습니다.

미디어 라이브러리 기능으로 파일 이름을 자동 지정할 수 없습니다.파일을 업로드하기 전에 파일 이름을 변경할 것을 권장합니다.파일을 업로드한 후에도 WordPress를 통해 파일 이름을 변경할 수 없으며 FTP를 통해서만 이름을 변경할 수 있습니다.

미디어 라이브러리 업로드 프로세스에 자신을 연결하는 플러그인이 유일한 방법입니다.하지만 파일을 업로드하기 전에 그렇게 하는 것이 더 쉬울 것입니다.

언급URL : https://stackoverflow.com/questions/3259696/rename-files-during-upload-within-wordpress-backend

반응형