【问题标题】:How to replace uploaded image with Phoenix and Arc?如何用 Phoenix 和 Arc 替换上传的图像?
【发布时间】:2017-02-01 21:47:44
【问题描述】:

我使用 Arc 上传图片 - 这是上传器的基本结构 - 我不在那里执行任何自定义或花哨的操作 - 验证、转换或文件名都与 example 中的类似。

我想替换我上传的图片,正如我在存储它们的 uploads 文件夹中看到的那样 - 一切都很好,但在我检查的应用程序中,我想像这样使用 url/2

Avatar.url({file, scope}, :thumb)

它将旧文件的 url 返回给我,有时这个旧文件被破坏-仅部分呈现。使用mix phoenix.server 不会改变这种情况。有什么奇怪的缓存吗?我可以使用讨厌的解决方法来确保文件thumb.png 被删除,只要它存在,但有什么不同的方法吗?

TL;DR:如何替换上传的同名图片以确保url(由Arc.Storage.Local 或Arc.Storage.S3 提供)的新用法工作正常吗?

【问题讨论】:

  • 我之前没用过 Arc,但可能是您的浏览器正在积极缓存图像。尝试清除缓存或在不同的浏览器中打开同一页面。
  • 这是我在 Chrome、Firefox 和 IE11 上进行的第一次思想测试 - 每个人都有新的清晰会话 - 结果是一样的。
  • 我想我在他们的 github 问题页面上看到了一些东西,arc 没有处理删除操作。目前我认为我们必须使用解决方法来做到这一点。我在删除未删除图像的关联模型时遇到了同样的问题。
  • 这里是链接:github.com/stavro/arc_ecto/issues/40 您可能会找到一些临时解决方法的想法。

标签: elixir phoenix-framework


【解决方案1】:

在这种情况下,对我来说最简单的解决方法是为每个新上传的图像命名。为此,我在架构中使用了包含 logo_number 的附加字段(我不想将其命名为 id),并确保通过简单使用 File 模块函数(即 lsrm!.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    • 2011-12-03
    • 2019-02-28
    • 2013-03-03
    • 2016-11-29
    • 1970-01-01
    相关资源
    最近更新 更多