0
我正在編寫一個可以將文件上傳到存儲的Rails應用程序。大文件從客戶端(使用JS)分割成塊,並將部分上傳到服務器。連接字節 - 將文件作爲塊寫入FTP文件夾
在開發過程中,我可以簡單地打開已存在的文件並在其中寫入以下字節。
(我使用CarrierWave寶石)
File.open(@up_file.link.path, "ab") do |f|
f.write(up_file_params[:link].read)
end
# This code worked when I upload to '/public' folder in development
不過,現在我想用一臺FTP服務器到存儲的文件。但是我不能用現有的字節連接新的字節。
def get_ftp_connection # create a new FTP connection
ftp = Net::FTP.new
ftp.connect(ENV['ftp_host'], ENV['ftp_port'])
begin
ftp.passive = ENV['ftp_passive']
ftp.login(ENV['ftp_user'], ENV['ftp_passwd'])
yield ftp
ensure
ftp.quit
end
end
.....
def create
.....
get_ftp_connection @up_file do |ftp|
full_path = ::File.dirname "#{ENV['ftp_folder']}/#{@up_file.link.path}"
base_name = File.basename(@up_file.link.to_s)
ftp.chdir(full_path)
ftp.putbinaryfile(up_file_params[:link].read, base_name)
end
end
我在putbinaryfile...
有ArgumentError (string contains null byte):
,任何幫助:(
您可以將部件上傳到服務器上的臨時文件上傳完成後,將其放到FTP服務器上。 –