프로젝트

일반

사용자정보

레드마인 최신 버전에서 파일명이 한글일 경우 다운로드가 되질 않습니다.

박 익준이(가) 2016-07-01에 추가

안녕하세요, 이번에 사내에 레드마인을 도입하기 위해서 개발서버에 레드마인 최신 릴리즈를 설치하였습니다.

다른 기능상에 문제는 없는데,

 

게시판 글쓰기에서 한글로 된 파일명을 첨부할 경우 오류 없이 등록은 되지만 다운로드가 안되는 현상이 있네요.

다운로드는 파일을 클릭하면 http응답이 400 bad request 라는 응답이 떨어집니다.

서버 업로드는 되는 경로에 보면 해당 파일은 존재하고요. 

 

구글에서 검색해보면 오래된 버전에 유사한 문제가 있었던 걸로 보이는데 파일을 출력할 때 해당 경로 문자열을 utf-8로 지정하는 부분도 

소스에서 찾아봤는데, fix된 이슈라 반영된 상태이고요.

 

도입을 하고 싶은데 가장 기본적인 기능이 안되니, 아직 도입을 못하고 있네요.

조언 부탁 드려요.

 

 


답글 (3)

RE: 레드마인 최신 버전에서 파일명이 한글일 경우 다운로드가 되질 않습니다. - 커뮤니티 관리자이(가) 2016-07-04에 추가

안녕하세요? 커뮤니티 관리자입니다.

해당 문제는 아주 기본적인 기능이어서 소스에 문제가 있다기 보니다는 환경적인 부분이 크다고 볼 수 있습니다.

환경적인 부분이라고 하면 서버 권한, 사용자의 브라우저 등의 설정이 먼저 의심됩니다.

먼저 주변적인 것부터 점검해 보시는 게 좋겠습니다.

 

RE: 레드마인 최신 버전에서 파일명이 한글일 경우 다운로드가 되질 않습니다. - 박 익준이(가) 2016-07-06에 추가

안녕하세요, 관리자님

먼저 댓글 감사합니다.

 

댓글 보고 모든 ie, chrome, firefox 에서 테스트해봤는데 모두 400 bad request 오류가 나고요.

제가 실수로 루비 버전이 1.9.X대로 설치를 해서 2.2대로 업그레이드하고 gem 파일을 다시 설치했는데도 동일한 에러가 나네요.

 

로그 파일을 확인해 보니 아래와 같은 오류가 나고 있더라구요.

디비에 한글 파일명이 저장된 것과 파일시스템 상에 실제로 파일이 있는 건 확인했습니다. 같이 첨부한 파일명이 영문으로 된 건 이상없이 다운로드 되어서 권한쪽은 문제가 없는거 같고요.

 

Started GET "/attachments/download/43/2017_%bc%f6%bd%c3%b8%f0%c1%fd%bf%e4%b0%ad.pdf" for  xxx.xxx.xxx.xxx at 2016-07-06 22:14:51 +0900

ActionController::BadRequest (ActionController::BadRequest):
  vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/http/request.rb:62:in `block in check_path_parameters!'
  vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/http/request.rb:59:in `each'
  vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/http/request.rb:59:in `check_path_parameters!'
  vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/routing/route_set.rb:33:in `serve'
  vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/journey/router.rb:43:in `block in serve'
  vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/journey/router.rb:30:in `each'
  vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/journey/router.rb:30:in `serve'
  vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/routing/route_set.rb:817:in `call'
  vendor/bundle/ruby/2.2.0/gems/rack-raw-upload-1.1.1/lib/rack/raw_upload.rb:18:in `call'
  vendor/bundle/ruby/2.2.0/gems/rack-openid-1.4.2/lib/rack/openid.rb:98:in `call'
  vendor/bundle/ruby/2.2.0/gems/request_store-1.0.5/lib/request_store/middleware.rb:9:in `call'
  vendor/bundle/ruby/2.2.0/gems/rack-1.6.4/lib/rack/content_length.rb:15:in `call'
  vendor/bundle/ruby/2.2.0/gems/rack-1.6.4/lib/rack/etag.rb:24:in `call'
  vendor/bundle/ruby/2.2.0/gems/rack-1.6.4/lib/rack/conditionalget.rb:25:in `call'
  vendor/bundle/ruby/2.2.0/gems/rack-1.6.4/lib/rack/head.rb:13:in `call'
  vendor/bundle/ruby/2.2.0/gems/actionpack-xml_parser-1.0.2/lib/action_dispatch/xml_params_parser.rb:16:in `call'
  vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/params_parser.rb:27:in `call'
  vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/flash.rb:260:in `call'
  vendor/bundle/ruby/2.2.0/gems/rack-1.6.4/lib/rack/session/abstract/id.rb:225:in `context'
  vendor/bundle/ruby/2.2.0/gems/rack-1.6.4/lib/rack/session/abstract/id.rb:220:in `call'
  vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/cookies.rb:560:in `call'
  vendor/bundle/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/query_cache.rb:36:in `call'
  vendor/bundle/ruby/2.2.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call'
  vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
  vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:88:in `__run_callbacks__'
  vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:778:in `_run_call_callbacks'
  vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb:81:in `run_callbacks'
  vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/callbacks.rb:27:in `call'
  vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
  vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
  vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/rack/logger.rb:38:in `call_app'
  vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/rack/logger.rb:20:in `block in call'
  vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.6/lib/active_support/tagged_logging.rb:68:in `block in tagged'
  vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.6/lib/active_support/tagged_logging.rb:26:in `tagged'
  vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.6/lib/active_support/tagged_logging.rb:68:in `tagged'
  vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/rack/logger.rb:20:in `call'
  vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/request_id.rb:21:in `call'
  vendor/bundle/ruby/2.2.0/gems/rack-1.6.4/lib/rack/methodoverride.rb:22:in `call'
  vendor/bundle/ruby/2.2.0/gems/rack-1.6.4/lib/rack/runtime.rb:18:in `call'
  vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.6/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
  vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/static.rb:120:in `call'
  vendor/bundle/ruby/2.2.0/gems/rack-1.6.4/lib/rack/sendfile.rb:113:in `call'
  vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/engine.rb:518:in `call'
  vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/application.rb:165:in `call'
  vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/railtie.rb:194:in `public_send'
  vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/railtie.rb:194:in `method_missing'
  /usr/local/rvm/gems/ruby-2.2.4/gems/passenger-5.0.29/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb:97:in `process_request'
  /usr/local/rvm/gems/ruby-2.2.4/gems/passenger-5.0.29/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb:152:in `accept_and_process_next_request'
  /usr/local/rvm/gems/ruby-2.2.4/gems/passenger-5.0.29/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb:113:in `main_loop'
  /usr/local/rvm/gems/ruby-2.2.4/gems/passenger-5.0.29/src/ruby_supportlib/phusion_passenger/request_handler.rb:416:in `block (3 levels) in start_threads'
  /usr/local/rvm/gems/ruby-2.2.4/gems/passenger-5.0.29/src/ruby_supportlib/phusion_passenger/utils.rb:113:in `block in create_thread_and_abort_on_exception'

 

루비를 모르는 데 소스상으로는 인코딩된 get request 파라미터를 가져오는 부분에서 인코딩 문제가 있어서 오류가 나는 거 같다는 생각이 드네요..

혹시 인코딩 설정관련해서 확인해 부분이 있을까요? 

 

 

RE: 레드마인 최신 버전에서 파일명이 한글일 경우 다운로드가 되질 않습니다. - 커뮤니티 관리자이(가) 2016-07-07에 추가

위키가 안되어서 질문하신 분이 첨부파일에 대해서도 해결이 되었다고 합니다.

아래 사이트를 참조해서 해 보세요.

http://www.redmine.or.kr/boards/4/topics/443?r=477#message-477

    (1-3/3)
    클립보드 이미지 추가 (최대 크기: 500 MB)