次のコードを使用して、画像をbase64でエンコードしてから、サードパーティの電子メールサービスを使用して電子メールで送信しようとしています。base64に変換すると画像が壊れるのはなぜですか?
(ns application.encode
(:import org.apache.commons.codec.binary.Base64)
(:require [clojure.java.io :as io]))
(defn encode [file-path]
(let [content (String.
(Base64/encodeBase64
(.getBytes
(slurp (clojure.java.io/resource "public/test.gif")))))]
;; email file contents
)
ただし、画像が壊れていて、そのサイズが倍増しています。私は、電子メールまたはspit
をローカルファイルに送信することでこれを確認することができます。
私は間違って何をしていますか?
更新:Rubyの次のコードは、私が上でやろうとしていることをファイルに書き込んだ後、slurp
を送信することで、希望通りにメールを送信することができます。 (これは当然のソリューションではないですが、私は、私は問題のファイルを使用していても可能であった何をしようとしていることを確認したかった。)すべての
encoded = Base64.encode64(File.read('resources/public/test.gif'))
私の誤用は確かに私の問題の原因でした。リンク先の答えによって提供される情報を使用して、私は実際の解決策を見つけることができました。ありがとう! – pdoherty926