Rails 응용 프로그램과 다른 원격 서버 (Apache + Tomcat)에 일부 PDF 파일이 있습니다. 그리고 "다른 이름으로 저장"대화 상자에서 확인을 클릭 한 후 사용자가 다운로드 할 수있게하려고합니다.rails 3.1 : 파일 다운로드를 시작하는 데 redirect_가 아닌 이유는 무엇입니까?
그래서 내 컨트롤러에서 다운로드 요청을 처리 할 수있는 작업이 있습니다. 이 작업을 수행하면 PDF의 URL이 으로 리디렉션됩니다. 문제는이 대화 상자는 그러나
def download
url = "#{server}/...../file.pdf"
redirect_to url
end
을 열지 않습니다 나는 PDF에 대한 정규화 된 URL을 브라우저의 주소 표시 줄에 삽입한다면, "다른 이름으로 저장"을 선택한 후 원하는 동작이
일어나는 것입니다
2 개의 요청간에 분명히 차이가 있습니다. 예를 들어 Content-disposition 또는 Content-type을 설정하는 방법을 알지 못해서 그렇지 않습니다. redirect_to를 사용하여 - -
- 은 "명백한"솔루션 것은 : 아니면, redirect_to는 단순히
갈 왜 내가 나를 이해하는 데 도움이 수 여기에 사람을 바라고 잘못된 방법입니다 (1)은 선호되는 옵션이 아니며 send_file과 같은 옵션은 더 자주 제안되는 옵션입니다.
- send_file을 사용하는 경우 send_file을 호출하기 전에 먼저 파일을 내 레일 서버로 가져와야합니다. 어떻게해야합니까?
그래서 지금 무엇을할까요? 브라우저의 PDF 파일로 가져가시겠습니까? – varatis
[Rails 3.1 : Linode에있는 PDF를 클라이언트 컴퓨터에 다운로드하는 방법은 무엇입니까?] (http://stackoverflow.com/questions/9109927/rails-3-1-how-to-download-a-pdf- 컴퓨터에 연결된 linode) –
Varatis -> 내가 말할 수있는 한, 아무 일도 일어나지 않고있다.으로 리디렉션되고 "완료 됨 302ms"메시지가 표시되지만 "다른 이름으로 저장"대화 상자는 표시되지 않습니다. Firebug의 응답 헤더에 올바른 URL이 설정되었습니다. 그러나 Content-type은 text/html입니다. 응용 프로그램/pdf 여야합니다. 설정 헤더 [Content-type]가 도움이됩니까? 여하튼, 나는 두 개의 호출이 Rails 앱과 redirect_to에서 브라우저와의 차이점이 어디인지 알지 못한다. - –
Abhinav