代码之家  ›  专栏  ›  技术社区  ›  quantumpotato

使用菲尼克斯-db读取ARC上载的二进制数据只显示文件名

  •  0
  • quantumpotato  · 技术社区  · 6 年前

    当我读到我的用户时,我明白了

    %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
    

    我可以看到二进制文件和文件名。当我阅读时,我只看到文件名。

    如何直接读取二进制数据?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Aleksei Matiushkin    6 年前

    Arc.File 是具有三个字段的结构。

    Algebra.Inspect ,它用于在控制台中表示文件,谨慎地忽略二进制垃圾。

    %MyApp.Api.User{}.profile_photo 不是地图而是 %Arc.File{} 我怀疑它为什么是一张裸露的地图。

    在任何情况下,结构都有一个直接可访问的字段 binary :

    %MyApp.Api.User{}.profile_photo.binary