我希望能够上传文件,特别是图片,并将其存储在本地。我知道plug Plug.Static
,但它不是静态资产吗?鉴于上传的文件不是静态的。
1)另外,我已经在我的应用程序中自动生成了这个:
# lib/my_app/endpoint.ex
plug Plug.Static,
at: "/", from: :my_app, gzip: false,
only: ~w(css fonts images js favicon.ico robots.txt)
确实,它适用于静态资产。我该如何处理上传的文件?我想将它们存储在不同的目录中。不一定在我的项目之外,但默认情况下它不会在生产梁文件中编译。
2)鉴于上传的文件名,我希望能够从a)控制器b)视图中获取其完整的URL /路径。我怎么能这样做?
答案 0 :(得分:1)
查看file uploads的文档。凤凰城使用Plug.Upload
。您的文件将上载到临时目录,并且仅在上载请求的生命周期内存在。您可以选择使用该文件执行任何操作。如果要将其存储在服务器上的某个位置,可能需要跟踪上载的文件以及数据库中服务器的存储位置。