2011-08-25 6 views
3

에서 파일을 저장할 때 내가 (원격 API에서) 파일을 저장하는 데 문제가 UTF-8 ASCII-8BIT에서, 나는MongoMapper 오류 " XFF"MongoDB의에서 DB

class Foo 
    include ::MongoMapper::Document 
    key :bar, String 
end 
루비 1.9와 함께 해요 전화를 저장하는 동안 오류가 발생, 작동 음 중 하나를

foo.bar = pdf_data.encode('UTF-8') 
foo.bar = pdf_data.force_encoding('UTF-8') 
foo.bar = pdf_data.ensure_encoding('UTF-8', 
    :external_encoding => :sniff, 
    :invalid_characters => :transcode 
) # with github.com/Manfred/Ensure-encoding 

: 나는 다음과 같은 일을 시도 UTF-8

에 ASCII-8BIT에서 "\ XFF"

는 나는 다음과 같은 오류가 발생합니다 ...

나는 그물을 본다. 그러나 나는 명확한 응답 (또는 적어도 나의 probleme를 해결한다)을 발견하지 못했다. ... 내가 그것을 저장할 수 있기 위해 해야하는 어떤 생각?

답변

6

TempFile을 사용하는 경우 이진 모드로 설정해야합니다. 예 :

file = Tempfile.new('tmp').tap do |file| 
    file.binmode # must be in binary mode 
    file.write image.to_blob 
    file.rewind 
end 
+0

이렇게하면 문제가 해결된다고 보장 할 수 없지만 문제가 해결되었습니다. – sandstrom