Téléchargement de fichier dans Rails: les données sont un objet. Comment puis-je le renvoyer à mon avis?
-
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.
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