9
votes

Limite de tailles de téléchargement de fichier de rails

Est-ce que quelqu'un connaît une bonne solution pour limiter la taille du téléchargement de fichier lors de l'exécution d'une application Rails avec passager / mod_rails. La demande doit être immédiatement refusée, de sorte que le fichier ne soit pas transféré sur le serveur.

Les solutions que j'ai trouvées jusqu'à présent, toutes décrivent comment correck Mongrel pour mettre en œuvre une limitation, mais je dois utiliser le passager avec cette application.


0 commentaires

3 Réponses :


10
votes

Vous pouvez casser la taille de téléchargement via Apache à l'aide de la directive limiteRequesterbody: xxx

http://httpd.apache.org/docs/1.3/mod/core.html#LIMIREQuestBody


2 commentaires

C'est une solution possible. Le problème ici est que Apache quitte simplement la connexion et, à cause de cela, il n'est pas possible d'afficher une page d'erreur.


Ouais, c'est la validation du côté serveur et est utilisée à des fins de sécurité. Vous devriez probablement utiliser un script du côté client afin que les utilisateurs non malveillants soient avertis sur place. Si vous utilisez un plugin comme dropzone , c'est aussi simple que régler le maxfilesize



21
votes

ou si vous utilisez NGinx avec passager, ajoutez-le dans le bloc serveur: xxx

http://wiki.nginx.org/nginxhttpcoremodule#Client_max_body_size


0 commentaires

7
votes

Vous pouvez utiliser après JavaScript pour informer l'utilisateur que le fichier sélectionné dépasse la limite maximale. Mais il est toujours essentiel d'avoir une validation latérale du serveur.

$('#id_of_input_file_field').change(function() {
  if(this.files[0].size > MAX_LIMIT_FOR_FILE){
    $('#id_of_input_file_field').val(''); 
    alert('File exceeds maximum size limit ')
}
});


0 commentaires