Je construis une application rails pour tester notre produit phare (également basé sur le web). Le problème est qu'une partie du test nécessite l'utilisation de l'interface Web de l'application de production pour télécharger des fichiers. Donc ce que je dois faire, c'est que l'application rails télécharge ces fichiers dans l'application de production (pas sur les rails). Existe-t-il un moyen pour que les rails affichent le fichier dans l'application de production (comme le navigateur publie le fichier dans l'application de production)?télécharger un fichier sur un site web avec ruby / rails
Répondre
Bien sûr, utiliser la bibliothèque nette/http ...
http://www.ruby-doc.org/stdlib/libdoc/net/http/rdoc/classes/Net/HTTP.html
, mais il semblerait qu'il manque l'encodage multipart, afin de vérifier cet autre article
http://kfahlgren.com/blog/2006/11/01/multipart-post-in-ruby-2/
Consultez cette même question
Vous voudrez peut-être consulter le plugin Paperclip. Très bien pour télécharger des images. Peut-être travailler pour d'autres formats aussi.
Si vous avez juste besoin de télécharger des fichiers, je pense qu'il est inutile d'utiliser un plugin pour cela. Le téléchargement de fichier est très, très simple.
class Upload < ActiveRecord::Base
before_create :set_filename
after_create :store_file
after_destroy :delete_file
validates_presence_of :uploaded_file
attr_accessor :uploaded_file
def link
"/uploads/#{CGI.escape(filename)}"
end
private
def store_file
File.open(file_storage_location, 'w') do |f|
f.write uploaded_file.read
end
end
def delete_file
File.delete(file_storage_location)
end
def file_storage_location
File.join(Rails.root, 'public', 'uploads', filename)
end
def set_filename
self.filename = random_prefix + uploaded_file.original_filename
end
def random_prefix
Digest::SHA1.hexdigest(Time.now.to_s.split(//).sort_by {rand}.join)
end
end
Ensuite, votre formulaire peut ressembler à ceci:
<% form_for @upload, :multipart => true do |f| %>
<%= f.file_field :uploaded_file %>
<%= f.submit "Upload file" %>
<% end %>
Je pense que le code est à peu près explicite, je ne vais pas l'expliquer;)
Paperclip gem est en effet une solution. Il fonctionne aussi sur d'autres formats et est très facile à mettre en œuvre dans les rails. Regardez la vidéo .. !!
- 1. Ruby on Rails Question - Réponse Site Web
- 2. Paypal Site Web Paiements Standard avec une application Ruby/Rails
- 3. Construire un site web - meilleures pratiques et architecture avec Ruby
- 4. Comment télécharger un fichier avec Catalyst?
- 5. Comment rediriger vers un site Web externe avec des rails?
- 6. Grattez un prix sur un site Web
- 7. Création d'un test Web Visual Studio pour télécharger un fichier avec un nom de fichier aléatoire
- 8. Télécharger un fichier sur SSL Page
- 9. Comment surveiller le trafic de ruby on rails site web?
- 10. Quelle est la meilleure façon de télécharger un dossier sur un site Web?
- 11. Télécharger un fichier avec Adobe AIR
- 12. forcer un fichier à télécharger
- 13. Comment télécharger un fichier avec mod_python?
- 14. Ping un site à ruby?
- 15. FileTest.exists? problème avec ruby sur les rails
- 16. Comment démarrer avec un site web PHP?
- 17. Contenu multilingue sur un site Web
- 18. Télécharger un fichier PDF via Silverlight
- 19. C# Comment télécharger un fichier sur un serveur PHP?
- 20. Faire un site Web avec des profils
- 21. Deux domaines sur un site Web?
- 22. Diagrammes à barres sur un site Web
- 23. Formulaires complexes avec ruby sur rails
- 24. Lire un site Web avec asyncore
- 25. Appel d'un fichier à partir d'un site Web dans Ruby
- 26. Publication d'un site Web .NET C# sur un serveur externe
- 27. Conception de sites Web avec Ruby on Rails
- 28. Ruby/Rails et services Web Sharepoint
- 29. Console Rails: Exécuter plusieurs fois un fichier Ruby
- 30. Java site récursif concurrent télécharger