Giter Club home page Giter Club logo

Comments (10)

darksheik avatar darksheik commented on June 27, 2024

I figured out something that works, but not sure if it is correct.

Repo.update!(%{model_record | attachment: %{file_name: filename, updated_at: Ecto.DateTime.utc}})

from arc_ecto.

mrkaspa avatar mrkaspa commented on June 27, 2024

I need the same thing, I tried to fake the plug upload, but didn't work

 params = %{
      avatar: %Plug.Upload{
        content_type: "image/jpeg",
        filename: "#{user.id}.jpeg",
        path: file_url
      }
    }
changeset = User.update_changeset(user, params)
response = Repo.update(changeset)

#THE CHANGESET METHOD
def update_changeset(model, params \\ :empty) do
    |> cast(params, @required_fields, @optional_fields)
    |> cast_attachments(params, @required_file_fields, @optional_file_fields)
end

from arc_ecto.

mrkaspa avatar mrkaspa commented on June 27, 2024

@darksheik so you had to upload the file manually and after that update the record on the database?

from arc_ecto.

stavro avatar stavro commented on June 27, 2024

Hi Michel! You don't need a Plug.Upload! Just create a regular Elixir map
with the filename and path and it should work just fine.
On Dec 31, 2015 7:10 PM, "Michel Perez" [email protected] wrote:

@darksheik https://github.com/darksheik so you had to upload the file
manually and after that update the record on the database?


Reply to this email directly or view it on GitHub
#11 (comment).

from arc_ecto.

mrkaspa avatar mrkaspa commented on June 27, 2024

@stavro I tried but doesn't work I'm testing with the lastest elixir version

from arc_ecto.

stavro avatar stavro commented on June 27, 2024

Ok - I will be back in town on Tuesday and help resolve. Apologies for the
confusion!
On Jan 1, 2016 10:30 PM, "Michel Perez" [email protected] wrote:

@stavro https://github.com/stavro I tried but doesn't work I'm testing
with the lastest elixir version


Reply to this email directly or view it on GitHub
#11 (comment).

from arc_ecto.

darksheik avatar darksheik commented on June 27, 2024

Sorry I missed this activity!
Yes, uploading to S3 manually. With my model set up to store the file on S3 in the "attachment" field (see the https://github.com/stavro/arc repo):

field :attachment, MyApp.Attachment.Type

I did this:

   {:ok, s3_filename} = MyApp.Attachment.store({local_filename, record})  # Upload to S3
   Repo.update!(%{record |
      attachment: %{file_name: s3_filename, updated_at: Ecto.DateTime.utc}}
    )

from arc_ecto.

mrkaspa avatar mrkaspa commented on June 27, 2024

@darksheik that worked for me but I don't think it be the best solution

from arc_ecto.

darksheik avatar darksheik commented on June 27, 2024

I agree - should just be able to do it in one go.

from arc_ecto.

stavro avatar stavro commented on June 27, 2024

An example from the local harddrive:

params = %{"avatar" => "/Users/sean/Downloads/picture.png"}

User
  |> Repo.get!(1)
  |> User.update_avatar(params)
  |> SchedWeb.Repo.update!

# models/user.ex

def update_avatar(user, params) do
  user
    |> cast_attachments(params, ~w(), ~w(avatar))
end

from arc_ecto.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.