Téléchargement de fichier dans Rails: les données sont un objet. Comment puis-je le renvoyer à mon avis?

StackOverflow https://stackoverflow.com/questions/1608312

  •  05-07-2019
  •  | 
  •  

Question

Lors d'un téléchargement dans mon projet Rails, la base de données stocke

---! ruby ??/ object: Fichier type de contenu: application / octet-stream chemin_original: mes.numéros

comment puis-je le faire retourner mes numéros à mon avis uniquement?

Merci beaucoup! Marco

ps. Je ne veux pas utiliser attachment_fu ou tout autre plugin de préférence.

Était-ce utile?

La solution

Votre contrôleur reçoit en réalité un téléchargement de fichier en tant qu’objet File et non en tant que donnée; il vous incombe donc de le lire. Les fichiers téléchargés sont généralement enregistrés dans un répertoire temporaire et un descriptif de fichier ouvert est présent dans le répertoire. params.

Vous pouvez utiliser l'une des méthodes suivantes pour récupérer les données:

def create
  # Read in data from file into parameter before creating anything
  if (params[:model] and params[:model][:file])
    params[:model][:file] = params[:model][:file].read
  end

  @model = MyModel.create(params[:model])
end

Vous devrez probablement vous assurer que la colonne de la base de données peut stocker des données binaires. Dans les migrations MySQL, il s’agit du type: colonne binaire.

Autres conseils

Vous pouvez accéder au nom du fichier téléchargé avec le nom de fichier original de l'aide. donc params [: model] [: file] .original_filename

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top