当我阅读我的用户时,我看到了
%MyApp.Api.user{
profile_photo: %{
file_name: "2018-12-28 15:46:53.330536Z.png",
updated_at: ~N[2018-12-28 15:46:53]
},
}
但是在上传时我使用了这个变更集:
def update_photo_changeset(user, attrs) do
user
|> cast(attrs[:user], [:profile_photo])
|> cast_attachments(attrs, [:profile_photo])
|> validate_required([:email, profile_photo])
end
注销attrs我可以看到二进制文件和文件名。当我阅读时,只能看到文件名。
如何直接读取二进制数据?
答案 0 :(得分:0)
Arc.File
是具有三个字段的结构。
Algebra.Inspect
(用于表示控制台中的文件)会谨慎地忽略二进制垃圾。
%MyApp.Api.User{}.profile_photo
不应是地图,而应是%Arc.File{}
结构,我怀疑我能说出为什么它是裸地图。
在任何情况下,该结构都有一个可直接访问的字段binary
:
%MyApp.Api.User{}.profile_photo.binary