# rails+sinatra sent image

**URL:** <https://discuss.rubyonrails.org/t/rails-sinatra-sent-image/52198>\
**Category:** rubyonrails-talk\
**Created:** [June 9, 2010, 5:52am UTC](https://discuss.rubyonrails.org/t/rails-sinatra-sent-image/52198 "2010-06-09T05:52:17Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![11155](https://avatars.discourse-cdn.com/v4/letter/1/d26b3c/32.png) [@11155](https://discuss.rubyonrails.org/u/11155)\
**Post date:** [June 9, 2010, 5:52am UTC](https://discuss.rubyonrails.org/t/rails-sinatra-sent-image/52198/1 "2010-06-09T05:52:17Z")

</div>

Hi! I have simple rails application - users with name and avatar and in sinatra I want to create new user.

form for new user

\<form action="/users/create" enctype="multipart/form-data" method="post"\> &nbsp;&nbsp;\<p\> &nbsp;&nbsp;&nbsp;&nbsp;\<label for="name"\>Name: \</label\> &nbsp;&nbsp;&nbsp;&nbsp;\<input type="text" id="name" name="user[name]" \> &nbsp;&nbsp;\</p\> &nbsp;&nbsp;\<p\> &nbsp;&nbsp;&nbsp;&nbsp;\<label for="avatar"\>Avatar: \</label\> &nbsp;&nbsp;&nbsp;&nbsp;\<input type="file" id="avatar" name="avatar" \> &nbsp;&nbsp;\</p\> &nbsp;&nbsp;&nbsp;&nbsp;\<input type="submit" name="Commit" value="Create"\> \</form\>

My action in sinatra

&nbsp;&nbsp;post '/users/create' do &nbsp;&nbsp;&nbsp;&nbsp;RestClient.post("[http://localhost:3000/users&quot;](http://localhost:3000/users&quot;), :user=\>params['user']) &nbsp;&nbsp;&nbsp;&nbsp;redirect '/users' &nbsp;&nbsp;end

I would like to sent file to server in this action.

So the question is: How to sent file as a param to server ? I'm using mozilla firefox 3.6 so I can't get full file path to read it

---

<div class="post-metadata">

**Author:** ![Frederick\_Cheung](https://sea2.discourse-cdn.com/rubyonrails/user_avatar/discuss.rubyonrails.org/frederick_cheung/32/3901_2.png) [@Frederick\_Cheung](https://discuss.rubyonrails.org/u/Frederick_Cheung)\
**Post date:** [June 9, 2010, 8:27am UTC](https://discuss.rubyonrails.org/t/rails-sinatra-sent-image/52198/2 "2010-06-09T08:27:17Z")

</div>

Looks like you can pass a :multipart option to RestClient to tell it that the post should be multipart.

Fred

---

<div class="post-metadata">

**Author:** ![11155](https://avatars.discourse-cdn.com/v4/letter/1/d26b3c/32.png) [@11155](https://discuss.rubyonrails.org/u/11155)\
**Post date:** [June 9, 2010, 9:14am UTC](https://discuss.rubyonrails.org/t/rails-sinatra-sent-image/52198/3 "2010-06-09T09:14:23Z")

</div>

I tried next

post '/users/create' do &nbsp;&nbsp;RestClient.post("[http://localhost:3000/users&quot;](http://localhost:3000/users&quot;), :user=\>params['user'], :avatar=\>File.read("/home/qwerty1/Desktop/client/views/images.jpeg"), :multipart=\>true) &nbsp;&nbsp;redirect '/users' end

---

<div class="post-metadata">

**Author:** ![Frederick\_Cheung](https://sea2.discourse-cdn.com/rubyonrails/user_avatar/discuss.rubyonrails.org/frederick_cheung/32/3901_2.png) [@Frederick\_Cheung](https://discuss.rubyonrails.org/u/Frederick_Cheung)\
**Post date:** [June 9, 2010, 9:32am UTC](https://discuss.rubyonrails.org/t/rails-sinatra-sent-image/52198/4 "2010-06-09T09:32:31Z")

</div>

> I tried next
> 
> post '/users/create' do RestClient.post("[http://localhost:3000/users&quot;](http://localhost:3000/users&quot;), :user=\>params['user'], :avatar=\>File.read("/home/qwerty1/Desktop/client/views/images.jpeg"), :multipart=\>true) redirect '/users' end
> 
> ---------------------------------------
> 
> require 'paperclip' class User \< ActiveRecord::Base has\_attached\_file :avatar, :styles=\>{:thumb=\>"100x100", :medium=\>"200x200"} # validates\_attachment\_presence :avatar end
> 
> but id didn't sent any image to server
> 
> Am I doing something wrong ?

Did you try setting a breakpoint in your rails app to see that the image was being received properly. Does paperclip expect the name of the uploaded file (which you aren't currently transmitting) to have an acceptable extension or for the content type to be set ?

Fred

---

<div class="post-metadata">

**Author:** ![11155](https://avatars.discourse-cdn.com/v4/letter/1/d26b3c/32.png) [@11155](https://discuss.rubyonrails.org/u/11155)\
**Post date:** [June 9, 2010, 1:18pm UTC](https://discuss.rubyonrails.org/t/rails-sinatra-sent-image/52198/5 "2010-06-09T13:18:40Z")

</div>

Solved 🙂

#POST create &nbsp;&nbsp;post '/users/create' do &nbsp;&nbsp;&nbsp;&nbsp;f = File.new("temp#{params[:user][:login]}.jpg", "w") &nbsp;&nbsp;&nbsp;&nbsp;t = params[:avatar][:tempfile] &nbsp;&nbsp;&nbsp;&nbsp;while c = t.gets do &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f.puts(c) &nbsp;&nbsp;&nbsp;&nbsp;end &nbsp;&nbsp;&nbsp;&nbsp;f.close &nbsp;&nbsp;&nbsp;&nbsp;RestClient.post("[http://localhost:3000/users&quot;,:user=&gt;\](http://localhost:3000/users&quot;,:user=&gt;%5C){ :login=\>params[:user][:login], &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:email=\>params[:user][:email], &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:name=\>params[:user][:name], &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:avatar=\>File.new("temp#{params[:user][:login]}.jpg")}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:multipart=\>true) &nbsp;&nbsp;&nbsp;&nbsp;File.delete("temp#{params[:user][:login]}.jpg") &nbsp;&nbsp;&nbsp;&nbsp;redirect '/users' &nbsp;&nbsp;end
