簡體   English   中英

Ruby on Rails文件上傳和下載

[英]Ruby on rails File Upload and download

在這里,我要實現的功能是上傳文件,然后在Rails中以ruby下載。

首先,我在Application Controller中添加功能

def uploadFile(file)
if !file.original_filename.empty
  @filename = getFileName(file.original_filename)
  File.open("#{RAILS_ROOT}/public/files/#{@filename}", "wb") do |f|
    f.write(file.read)
  end
  return @filename
end
end

def getFileName(filename)
if !filename.nil
  return filename
end
end

def save(file, description)
@filename=getFileName(file.original_filename)
@filesize=getFileName(file.length)
@uploadfile = Uploadfile.new
@uploadfile.filename=@filename
@uploadfile.filesize=@filesize/1024
@uploadfile.description=description
@uploadfile.save
end

其次,我在控制器中添加用於文件上傳的上傳。

def upload
@uploadfile = Uploadfile.new
unless request.get
  i=params[:file].size
  for num in(0..i-1)
  if filename=uploadFile(params[:file][num])
    savefiles(params[:file][num],params[:uploadfile][num])
  end
end
end
end

最后,我在new.html.erb中添加html,這是我要上傳文件並提交的頁面。

  <%=form_tag ({:action=>"upload"}), :multipart=>true %>
  <divid="MyFile">
  <inputid="file"name="file[]"size="30"type="file"/></br>
  <inputtype="text"id="uploadfile_description"name="uploadfile[]"></br>
</div>
<inputtype="button"value="add"onclick="addText()"/>
<inputstyle="cursor:pointer"type="submit"value="upload"/>
<%=form_tag%>

最終,我仍然在此方面犯錯誤。

沒有路線匹配{:action =>“ upload”,:controller =>“ cplectures”}

我該如何在不使用回形針或其他寶石的情況下進行修復,以及如何使用下載按鈕從正面下載此文件。 多謝你們

看來您的表格是我們發送GET地方,應該是POST ,反之亦然。 首先,通過運行以下命令檢查路線:

rake -T

並在那里找到您的控制器和動作組合。 檢查所需的http動詞,並使用以下形式發送:

<%= form_tag "", method: :get %>

假設您的帖子與您所走的路線相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM