2013-07-18 5 views
1

나는 파일 업로드를 위해 carrierwave를 사용하는 레일 애플리케이션을 수행 해왔다. Grape API를 사용하여 기존 파일을 클라이언트로 보내려면 어떻게해야합니까? 파일이 "public/uploads/datafile/1/file.txt"디렉토리에 있다고 가정합시다.포도 API를 사용하여 클라이언트에 파일 보내기

답변

1

콘텐츠 유형을 설정하는 한 파일 내용을 보내는 것만 큼 쉽습니다. 내가 'api_format'

if file_path && File.exists?(file_path) 
    data = File.open(file_path, 'rb').read 

    header "Content-Disposition:", " infile; filename=\"#{File.basename(file_path)}\"" 
    content_type 'application/x-gzip' 

    env['api.format'] = :binary 

    present data 
end 

이 포도에 있던를 설정하지 않은 경우

content_type "text/plain" 
File.read(...) 
2

나는 UTF8 문자 변환을 얻고 있었다 0.4.1