Validation personnalisée pour la taille du fichier dans les rails avant d'être téléchargés
dans mon formulaire, j'ai
<%= label_tag("file", "Attachment:") %><%= file_field_tag "uploadfile" %>
Dans mon modèle, j'aimerais écrire cette
validate :validates_uploadfile
def validates_uploadfile(file)
max_size = 2048
errors.add(:uploadfile, "File size exceeds limitation") if file.size > max_size
end
Dans mon contrôleur je peux appeler quelque chose comme cela
validates_upload_file(params[:uploadfile])
existe-il un moyen pour valider le chargement d'un fichier avant d'être téléchargées(et non pas à l'aide de javascript ou en regardant l'extension de fichier)
Merci pour l'aide
SED
validate :uploadfile_validation, :if => "uploadfile?"
def uploadfile_validation
errors[:uploadfile] << "should be less than 1MB" if uploadfile.size > 1.megabytes
end
Vous devez vous connecter pour publier un commentaire.
Voici mon code pour la taille des validations (j'utilise CarrierWave pour les téléchargements).
Acclamations.
"!uploadfile.blank?"
au lieu de"uploadfile?"
- je pense quepicture?
est une méthode définie par CarrierWave..., if: -> { picture }
Vous pouvez utiliser:
Si je ne me trompe pas, toutes ces méthodes ci-dessus vérifiez la taille du fichier, une fois sa été téléchargée ( et peut-être même traitée ) mais qu'advient-il si je choisis un 1 go de fichier dans le champ de saisie fichier pour les images considérant que la validation javascript est absent ou javascript est juste désactivé? Il probablt est téléchargé, en prenant beaucoup de temps juste pour te dire que sa trop grande, que tout n'est pas droit. Je suis un débutant donc j'ai peut-être tort de quelque chose ...
client_max_body_size 5M