我正在尝试使用以下代码来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