我正在嘗試使用以下代碼來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'))
我的'濫用slurp'確實是我的問題的原因。使用您鏈接的答案提供的信息,我能夠找到一個可行的解決方案。謝謝! – pdoherty926