पर रेल अपलोड फ़ाइल मैं रेल 2.3.5 और रूबी 1.8.6 पर हूं और यह पता लगाने की कोशिश कर रहा हूं कि उपयोगकर्ता को मेरे रेल ऐप के माध्यम से एक अलग मशीन पर एक FTP सर्वर पर फ़ाइल अपलोड करने दें। इसके अलावा मेरा रेल ऐप हेरोोकू पर होस्ट किया जाएगा जो स्थानीय फाइल सिस्टम में फाइलों के लेखन की सुविधा नहीं देता है।एफटीपी सर्वर
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
वर्तमान में मैं बस अपना Windows लैपटॉप पर काम करने की रेल एप्लिकेशन पाने के लिए कोशिश कर रहा हूँ। इसके बाद के संस्करण कोड के साथ, मैं मैं एक CSV फ़ाइल अपलोड करने के लिए कि यदि कोई फर्क नहीं पड़ता कोशिश कर रहा हूँ इस त्रुटि
Errno::ENOENT in FtpController#upload
No such file or directory -.... followed by a dump of the file contents
हो रही है। किसी को पता है कि क्या हो रहा है?
'ftp.putbinaryfile (StringIO.new (file.read), file.original_filename, Net :: FTP :: DEFAULT_BLOCKSIZE)' काम करता है? –
नहीं, जो काम नहीं करता है, त्रुटि को फेंकता है "स्ट्रिंगियो को स्ट्रिंग में परिवर्तित नहीं कर सकता"। – Bob
अरे, क्या रेल 3 इसे किसी भी बेहतर तरीके से संभालता है? – fatfrog