[워드프레스] 파일첨부 문제 해결하기.

워드프레스를 사용하다 보면 파일 첨부가 제대로 안될때가 있다.  *.jpg나 *.gif 같은 대중적인 것은 문제 없지만 국내에서 주로 쓰이는 한글(*.hwp)과 알집(*. alz) 파일은 보안상의 이유로 첨부할 수 없다는 에러(File type does not meet security guidelines. Try another.)가 나기 때문이다.

이 문제를 해결하기 위해 검색을 해 보니 File Manager 라는 플러그인을 사용하면 된다고해 적용해 보았는데 다운로드 링크가 본문의 아름다움(텍스트의 아름다움)을 망쳐놓는게 아닌가?

그림을 보라, 옥의 티 아닌가?

사실 이거 하나면 그냥 쓰려고 했는데 다운로드를 클릭하면 스크립트 형식으로 새로운 창이 뜬다. 자칫 잘못하면 악성코드 심어놓은 사이트로 오인받을 것 같아 다른 방법을 알아보았다.

File Manager 를 통해 파일을 다운받는 화면.

구글신을 영접해보니 유랑인에게 딱 필요한 http://chrismeller.com/2007/07/modifying-allowed-upload-types-in-wordpress 라는 문서를 내려주신다. 핵심은 아래와 같다.

Upload filetypes are checked by the function wp_check_filetype in wp-includes/functions.php(around line 1,000 in my current copy of trunk). Looking at the code, we see that the default array is passed into the upload_mimes filter, allowing you to easily add and remove types at will using a quick plugin hook.

Modify WordPress to Accept New Filetypes as Uploads
수정전 functions.php

워드프레스 wp-includes폴더에 있는 functions.php를 열어 upload_mimes을 검색, $mimes = apply_filters( ‘upload_mimes’, array( 아래줄에  ‘확장명’ => ‘파일타입’ , 을 추가하는 것이다. 확장명과 파일타입은 원하는대로 입력하면 된다. 한글파일을 첨부하고 싶다면 ‘hwp’ => ‘application/hangul’, 을 입력해주면 된다.

$mimes = apply_filters( 'upload_mimes', array( 아래줄에  '확장명' => '파일타입' ,
Modify WordPress to Accept New Filetypes as Uploads
수정 후 functions.php

한글파일 확장명이 *.hwp고 한글 프로그램 이름은 hangul(한글) 이므로 application에는 hangul 이라고 정해 주었다. 이런식으로 응용하면 다른 것도 추가할 수 있다. 수정이 끝나고 Funtions.php를 저장, 서버에 다시 올리면 한글파일이 정상적으로 올라간걸 확인할 수 있다.

한글파일이 업로드 된 장면

너무나 간단한 팁이지만 우리나라엔 워드프레스를 사용하는 사람이 적어서 관련정보를 찾아보기 어려운데 사용자가 늘어나 티스토리나 텍스트 큐브같이 다양한 정보들이 공유되었으면 하는 바램이다.

워드프레스를 쓰시는 모든분 “화이팅!!” 입니다.

댓글 26 개

댓글 쓰러가기 →

도움이 되어서 저도 기쁩니다. 멋진 홈페이지 운영하세용..ㅎㅎ

제 글을 유용한 정보에 담아주셔서 고맙습니다..ㅎㅎ 앞으로 워드프레스가 많이 활성화 되었으면 좋겠습니다.

제 글이 도움이 되었다니 기쁩니다.멋진 홈페이지 운영하세용~^_^

도움이 되어서 기쁩니다. BABO님도 복 많이 받으세요~!!

파일 업로드는 잘 되는데요. 파일명이 한글로 되어 있는 경우 업로드를 하면 파일명이 깨져서 올라가 있던데 혹시 해결방법 아시나요?
서버에 해당 폴더에 직접 들어가서 확인해 보니 파일이 이름이 깨진채로 업로드가 되어 있더라구요;;;;;

한글명으로 파일 업로드를 해본 경험이 없어서 뭐라고 답변을 해 드리기가 어려운데요 시간날 때 한번 테스트 해보고 답변드리겠습니다. (기말고사 기간이라.^^)

너무 감사합니다… 많은 곳에서 실제 사용방법이 없어 고민했는데 하나하나 해결하니 감사합니다.

이런 문제를 겪으시는 분 들이 상당히 많은 것 같군요. 미약하나마 도움이 되었다니 기쁘기 그지 없습니다. 즐겨찾기까지 해 주신다니 감사합니다.

코어를 해킹하는 것은 워드프레스에서 추천하는 방법이아닙니다.

http://codex.wordpress.org/Plugin_API/Filter_Reference/upload_mimes

코덱스 문서를 확인해보면

add_filter 를 이용해 확장자 허용이 가능합니다.

function custom_upload_mimes ( $existing_mimes=array() ) {

// Add file extension ‘extension’ with mime type ‘mime/type’
$existing_mimes[‘extension’] = ‘mime/type’;

// add as many as you like e.g.

$existing_mimes[‘doc’] = ‘application/msword’;

// remove items here if desired …

// and return the new full result
return $existing_mimes;

}

내일은님 좋은 댓글 감사합니다. ^^ 학교일로 이리저리 바쁘다 보니 답변이 늦었습니다. 알려주신 정보를 참고하여 조만간 새로운 포스팅을 해야 할 것 같습니다. 오늘도 좋은 하루 되세요!!

추가를 했는데도 불구하고 뜨는 이유는 어떤 이유일까요?;;
7z이랑 알집을 추가 해놨는데도…똑같은 메세지..보안상 문제가 나오네요

이 방법이 안된다면, 워드프레스가 버전업이 되면서 코어를 인위적으로 수정하지 못하게 막았을 수 있습니다.
플러그인 설치를 통해 해결하실 수 있습니다. 플러그인에서 Upload Mimes Filter 를 검색.

댓글 남기기