Ich bin auf Rails 2.3.5 und Ruby 1.8.6 und versuchen herauszufinden, wie ein Benutzer über meine Rails App eine Datei auf einen FTP-Server auf einem anderen Rechner hochladen kann. Auch meine Rails-App wird auf Heroku gehostet, was das Schreiben von Dateien in das lokale Dateisystem nicht erleichtert.Rails Upload-Datei auf FTP-Server
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.putbinaryfile(file.read, File.basename(file.original_filename))
ftp.quit()
end
def index
end
end
Derzeit Ich versuche nur die Rails-Anwendung zu bekommen auf meinem Windows-Laptop zu arbeiten. Mit dem obigen Code bekomme ich diesen Fehler
Ich versuche, eine CSV-Datei hochladen, wenn das einen Unterschied macht. Weiß jemand was los ist?
Funktioniert 'ftp.putbinaryfile (StringIO.new (file.read), datei.original_filename, Net :: FTP :: DEFAULT_BLOCKSIZE)? –
Nein, das hat nicht funktioniert, wirft den Fehler "kann StringIO nicht in String konvertieren". – Bob
Hey, behandelt Rails 3 das besser? – fatfrog