programing

플러그인 업로더의 업로드 디렉토리를 변경하는 방법

batch 2023. 3. 2. 22:07
반응형

플러그인 업로더의 업로드 디렉토리를 변경하는 방법

플러그인을 개발했는데 플러그인에는 커스텀 미디어 업로더가 있습니다.플러그인 업로더에서 파일을 업로드하면 해당 파일이 업로드되어 WordPress 기본값으로 저장됩니다.uploads/폴더입니다.

하지만 플러그인 업로더에서 파일을 업로드 할 때 워드프레스 커스텀 내의 새 폴더에 해당 파일을 업로드해야 합니다.uploads그래서 구글에서 검색해보니 다음 코드가 있더군요.

 <?php
     function upload_dir($dirs)                                    
{                                                             
        $dirs['subdir'] = '/my-uploads';                  
        $dirs['path'] = $dirs['basedir'] . '/my-uploads'; 
        $dirs['url'] = $dirs['baseurl'] . '/my-uploads';  

        return $dirs;                                         
}                                                             

add_filter('upload_dir', 'upload_dir');                       

   ?>

이제 업로드된 모든 파일(게시물, 페이지 등)도 해당 플러그인 폴더에 저장됩니다.

플러그인 업로더에서 업로드된 파일만 다음 파일에 저장되도록 합니다.my-folder나머지 파일은 WordPress 기본값으로 저장해야 합니다.uploads폴더...

업로드 코드 직전,

add_filter('upload_dir', 'upload_dir'); 

그런 다음 코드를 업로드한 후 다음을 사용합니다.

remove_filter('upload_dir', 'upload_dir'); 

이렇게 하면 필터는 플러그인 업로드에만 작동하고 다른 위치에서는 작동하지 않습니다.

플레인 PHP를 사용하여 직접 파일을 처리해야 할 수도 있습니다.양식을 처리할 때 다음을 수행하십시오.

$uploaddir = '/path/to/plugin/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

if( move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
    echo 'success!';
else
    echo 'fail!';

및 사용print_r($_FILES);디버깅할 수 있습니다.

단, 보안 위험이 발생할 수 있으므로 매우 주의해야 합니다.자세한 내용은 보안 PHP 파일 업로드 스크립트를 참조하십시오.

.htaccess 설정과 관련이 있을 수 있습니다..htaccess 파일은 사용자가 수행할 수 있는 작업에 대한 제한을 만듭니다.또는 파일 외부에 다른 설정이 있을 수 있습니다.테스트하기 위해 여러 서버에서 실행해 본 적이 있습니까?

여기 유효한 솔루션이 있습니다.

add_filter('upload_dir', 'my_upload_dir');
$upload = wp_upload_dir();
remove_filter('upload_dir', 'my_upload_dir');

funcion my_upload_dir($upload) {
  $upload['subdir'] = '/sub-dir-to-use' . $upload['subdir'];
  $upload['path']       = $upload['basedir'] . $upload['subdir'];
  $upload['url']        = $upload['baseurl'] . $upload['subdir'];
  return $upload;
}

언급URL : https://stackoverflow.com/questions/37591549/how-to-change-upload-directory-in-my-plugin-uploader

반응형