Rails 메일러의 첨부 파일로 XLSX를 보낼 수 없습니다
-
13-12-2019 - |
문제
사용자가 만든 파일 첨부 파일이 포함 된 전자 메일을 보내려고합니다.
attachments[document.display_name] = File.read(document.public_filename)
.
이는 대부분의 조건에서 작동합니다 (.docx는 .docx를 포함하지만 오류가있는 .xlsx 파일에 실패합니다.
invalid byte sequence in UTF-8
.
attachment_fu를 사용하여 첨부 파일을 업로드하고 이메일을 보내는 데 delayed_job을 연기하지만 첨부하려는 파일은 괜찮아 보이고 응용 프로그램 밖에서 성공적으로 열 수 있습니다.
나는 또한 다음과 같이 코드를 변경하는 제안을 보았지만 도움이되는 것 같습니다. 추가로 포함하십시오.
attachments[document.display_name] = { :content => File.read(document.public_filename), :transfer_encoding => :binary }
.
모든 첨부 파일 유형에 코드를 어떻게 작동합니까?
해결책
모드 또는 인코딩을 지정하여 파일을 바이너리로 읽을 수 있습니다.
attachments[document.display_name] = File.read(document.public_filename, :mode => 'rb')
.
또는
attachments[document.display_name] = File.read(document.public_filename, :encoding => 'BINARY')
. 제휴하지 않습니다 StackOverflow