복붙노트

[WORDPRESS] 이름을 바꾸고 업로드 된 파일을 덮어 쓰기

WORDPRESS

이름을 바꾸고 업로드 된 파일을 덮어 쓰기

해결법


  1. 1.unique_filename_callback 콜 백 기능, 자동으로 워드 프레스에 의해 호출이 기능이며,이 코드를 사용합니다. 그래서 우리는 같은 이름의 파일을 덮어 쓸 수 있습니다.

    unique_filename_callback 콜 백 기능, 자동으로 워드 프레스에 의해 호출이 기능이며,이 코드를 사용합니다. 그래서 우리는 같은 이름의 파일을 덮어 쓸 수 있습니다.

    $upload_overrides = array( 'test_form' => false,'unique_filename_callback' => 'my_cust_filename' );
    
    // You codes
    
    function my_cust_filename($dir, $name, $ext){
        return $name.$ext;
    }
    

  2. 2.나는 해킹 발견 wp_handle_upload 전에 파일을 이름을 바꿉니다.

    나는 해킹 발견 wp_handle_upload 전에 파일을 이름을 바꿉니다.

    $_FILES['myfile']['name'] = uniqid( 'file' ) . '.' . pathinfo( $_FILES['myfile']['name'] ) ['extension'];
    
    $upload_overrides = [ 'test_form' => false ];
    
    $movefile = wp_handle_upload( $_FILES['myfile']['name'], $upload_overrides );
    

  3. 3.이것은 당신이 임의의 이름으로 PDF 또는 이미지 파일을 업로드 할 방법입니다

    이것은 당신이 임의의 이름으로 PDF 또는 이미지 파일을 업로드 할 방법입니다

    <?php
    function custom_upload_name($filename)
    {
    $info = pathinfo($filename);
    echo  'info:'. $info . "\n";
    
    $ext=$info['extension'];
      $filename  =  rand(1,1000) .".".$ext;
    
    echo $filename . "\n";
         return $filename;
     }
    
    
    
    if ( ! function_exists( 'wp_handle_upload' ) ) {
        require_once( ABSPATH . 'wp-admin/includes/file.php' );
    }
    
    if(isset($_FILES['fileToUpload']))
    {
    $uploadedfile = $_FILES['fileToUpload'];
    echo $uploadedfile[name].' '. $uploadedfile[type].' '.$uploadedfile[tmp_name].' ';
    $_FILES['fileToUpload']=null; //removing file
    
    // *********************** Overriding parameter ***********************
    $upload_overrides = array( 'test_form' => false, 'mimes' => array(// Image formats
        'jpg|jpeg|jpe'                 => 'image/jpeg',
        'gif'                          => 'image/gif',
        'png'                          => 'image/png',
        'bmp'                          => 'image/bmp',
        'tif|tiff'                     => 'image/tiff',
        'ico'                          => 'image/x-icon',
    //pdf
            'pdf' => 'application/pdf'
    ) 
    );
    add_filter('sanitize_file_name', 'custom_upload_name', 10);
    $movefile = wp_handle_upload( $uploadedfile, $upload_overrides );
    
    if ( $movefile && ! isset( $movefile['error'] ) ) {
        echo "File is valid, and was successfully uploaded.\n";
        var_dump( $movefile );
    } else {
        /**
         * Error generated by _wp_handle_upload()
         * @see _wp_handle_upload() in wp-admin/includes/file.php
         */
        echo $movefile['error'];
    }
    }
    ?>
    

    이것은 HTML입니다

    <form action="#" method="post" enctype="multipart/form-data">
        Select image to upload:
        <input type="file" name="fileToUpload" id="fileToUpload">
        <input type="submit" value="Upload file" name="submit">
    </form>
    
  4. from https://stackoverflow.com/questions/23382934/rename-and-overwrite-uploaded-files by cc-by-sa and MIT license