Rails upload file to ftp server

Posted by Bob on Stack Overflow See other posts from Stack Overflow or by Bob
Published on 2010-04-25T21:38:05Z Indexed on 2010/04/25 21:43 UTC
Read the original article Hit count: 226

Filed under:
|

I'm on Rails 2.3.5 and Ruby 1.8.6 and trying to figure out how to let a user upload a file to a FTP server on a different machine than my Rails app. Also my Rails app will be hosted on Heroku which doesn't facilitate the writing of files to the local filesystem.

index.html.erb

<% form_tag '/ftp/upload', :method => :post, :multipart => true do %>
<label for="file">File to Upload</label> <%= file_field_tag "file" %>
<%= submit_tag 'Upload' %>
<% end %>

ftp_controller.rb

require 'net/ftp'

class FtpController < ApplicationController
  def upload
    file = params[:file]
    ftp = Net::FTP.new('remote-ftp-server')
    ftp.login(user = "***", passwd = "***")
    ftp.puttextfile(file.read, File.basename(file.original_filename))
    ftp.quit()
  end

  def index
  end

end

Currently I'm just trying to get the Rails app to work on my Windows laptop. With the above code, I'm getting this error

Errno::ENOENT in FtpController#upload
No such file or directory -.... followed by a dump of the file contents

Anyone knows what's going on?

© Stack Overflow or respective owner

Related posts about rails

Related posts about ftp