J'envoie un fichier MS-Word en utilisant des rails. C'est-à-dire que lorsque je clique sur un lien, un fichier DOC du dossier TMP (dans le projet) est envoyé.
Le code que j'utilise est p> Ça fonctionne, mais Il envoie un fichier vide. Le contenu est manquant dans le fichier. Toute suggestion? P> p>
4 Réponses :
Il n'y a pas de send_file : option de diffusion en continu, c'est: flux . Vous passez des types de mauvais paramètres. : Buffer_Size doit être numéro, pas une chaîne. : Le flux devrait être booléen, pas une chaîne. Vous n'avez besoin que de paramètres du nom de fichier (si vous souhaitez envoyer un fichier avec un autre nom que l'original). Les autres options que vous utilisez sont par défaut (sauf: type). P> pouvez-vous essayer ceci? P> @filename ="#{RAILS_ROOT}/tmp/test/test.doc"
send_file(@filename, :filename => "test.doc")
Essayez d'envoyer avec: Disposition => 'Inline'
send_file path, :type => 'application/msword', :disposition => 'inline'
commenter la ligne suivante dans config / environnements / production.rb code>
Pour nginx, il est X-Accel-redirect code>.
In your view =>
<%= link_to "click here to download", signed_feeds_pdf_path(:feed_image_path => feed_image.feedimage.path), target: '_self' %>
In your controller =>
def pdf
file_name = params[:feed_image_path].split('/').last
@filename ="#{Rails.root}/public/uploads/feed_image/feedimage/#{file_name}"
send_file(@filename ,
:type => 'application/pdf/docx/html/htm/doc',
:disposition => 'attachment')
end
+1. Assurez-vous d'envoyer un fichier vide.