2010-10-14 6 views
2

Je suis nouveau sur les rails. Je veux savoir sur le processus de téléchargement de fichiers dans les rails. Quelqu'un peut-il m'aider s'il vous plaît ... Merci, AlthafComment télécharger un fichier dans des rails?

+6

Découvrez Ruby on Rails guides (http://guides.rubyonrails.org/form_helpers.html#uploading-files) ou Google "rails téléchargement de fichiers" ou "rails fichier plugins upload" pour en savoir plus. Il serait préférable de faire cette recherche d'abord, puis revenez ici pour poser des questions plus spécifiques sur les parties dont vous avez besoin d'en savoir plus. – Jeff

+2

Ou recherchez simplement Stackoverflow pour d'autres questions sur ce sujet ("rails file upload"). Je crois que vous avez dû voir ces questions surgir quand vous tapiez le vôtre. – Matt

Répondre

5

Habituellement gems/plugins sont utilisés pour gérer les téléchargements de fichiers. Mon préféré, et peut-être le plus omniprésent est Paperclip.

À votre avis, vous devez dire les rails forment des aides que vous téléchargez un fichier comme ceci:

<%= form_for @model, :html => { :multipart => true } do |form| %> 
+0

=> Merci pour votre réponse. Je voulais connaître le code de téléchargement qui doit être écrit dans le contrôleur et dans le modèle (si nécessaire). Je suis familier avec la partie de vue pour le téléchargement de fichier –

+0

@ user475748 mec vous n'avez pas besoin d'écrire des lignes spéciales de code pour le téléchargement du fichier. Paperclip plugin a ces lignes de code. Il suffit de suivre le blog que j'ai fourni dans ma réponse et de vérifier que 5 minscastcast. –

+0

@ user475748: suivez les instructions pour la gemme Paperclip. Il gère les détails internes des téléchargements de fichiers, vous permettant simplement de spécifier les valeurs de configuration et de le laisser faire le reste :) – Matchu

1

Voici une méthode sur la façon de télécharger le fichier sans utiliser bijou et seulement en utilisant des rails,

Solution: =>

def create 
     @photo = Photo.new(photo_params) 
     uploaded_io = params[:photo][:photo] 
     File.open(Rails.root.join('public', 'uploads', uploaded_io.original_filename), 'wb') do |file| 
      file.write(uploaded_io.read) 
     end 
     if @photo.save 
      flash[:success] = "The photo was added!" 
      redirect_to root_path 
     else 
      render 'new' 
     end 
     end 


def upload 
    uploaded_io = params[:person][:picture] 
File.open(Rails.root.join('public', 'uploads', uploaded_io.original_filename), 'wb') do |file| 
    file.write(uploaded_io.read) 
    end 
end 

Et votre form.html.erb dans les vues devraient contenir cela, il est très simple,

<%= form_for @photo do |f| %> 
     <%= f.file_field :photo %> 
     <div class="actions"> 
     <%= f.submit "Upload" %> 
     </div> 
    <% end %> 

et enfin le modèle devrait avoir,

has_attached_file :image 

. ############################# ##################### Vous pouvez maintenant charger n'importe quel fichier.

Merci. Amusez-vous avec des rails.

Use <video_tag> for viewing video files. 
Use <audio_tag> for viewing audio files. 
Use <object>"link"</object> for viewing PDF or DOC files. 
Questions connexes