2011-09-08 4 views
1

J'utilise un trombone pour les pièces jointesRails Paperclip - fichier de téléchargement corrompu

Lorsque je télécharge un fichier, il est corrompu.

fichier est de téléchargement en mesure à la production

send_file attachment.data.path, :type => attachment.content_type, :x_sendfile => true, :stream => false 

il fonctionne très bien à la machine locale, mais il donne problème dans la production mais j'ai mis env la production

+0

Veuillez indiquer quels types de problèmes avez-vous avec le fichier? Comment est-il corrompu? Comment le vérifiez-vous? – Arsen7

+0

lorsque le fichier est ouvert, il est vide, car il n'est pas transféré complètement, 1 octet reçu (IDM affiche 0,00%) –

Répondre

1

La première chose à faire est de vérifier Quel est le fichier que vous essayez d'envoyer.

Ajouter cette ligne de code avant votre déclaration send_file:

logger.info "SENDING FILE: #{attachment.data.path.inspect}" 

Ensuite, voir le journal, vérifiez le chemin et voir si le fichier est vraiment là.

Je suppose que vos modes de production et de développement ont différentes données de base de données (et c'est naturel et attendu), mais les fichiers enregistrés dans le système de fichiers ne sont pas en synchronisation avec les bases de données.

Il est possible qu'il existe une autre différence entre les environnements, mais le chemin est la première chose que je considérerais coupable.

+0

type de fichier est pdf et inspect imprime le chemin correct du fichier, le fichier est là. Il envoie également l'en-tête X-Sendfile en production. –

+0

Avez-vous le même serveur en production? Votre serveur comprend-il l'en-tête X-Sendfile? Par exemple pour "nginx" vous devriez utiliser "X-Accel-Redirect" au lieu de "X-Sendfile". – Arsen7

+0

le serveur est apache et il est résolu. le problème était dans le serveur de production, il y avait une migration en cours qui mélangeait les bons chemins –

Questions connexes