Définition des restrictions de taille de fichier lors du téléchargement de fichiers avec Jersey

Je suis actuellement à la mise en œuvre de la fonctionnalité pour le téléchargement de fichiers à l'aide de maillot de repos. Je voudrais mettre un maximum autorisé de la taille des fichiers qui me semble être une très exigence commune.

Ma première approche a été d'utiliser Maillots de l'FormDataContentDisposition qui devrait tenir toutes les informations dont je pourrais avoir besoin sur le fichier. Mais de toutes les informations sauf le nom du fichier semble manquer, y compris la taille du fichier.

C'est mon repos méthode:

@POST
@Path("uploadFile/")
@Consumes("multipart/form-data")
@Produces("text/html")
public String handleDocumentUpload(
    @FormDataParam("file") InputStream uploadedInputStream,
    @FormDataParam("file") FormDataContentDisposition fileDetail)
{
    if(fileDetail.getSize() > MAX_FILE_SIZE)
    {
        throw new IllegalArgumentException(
                "File is to big! Max size is " + MAX_FILE_SIZE);
    }
    //...more file handling logic
}

Qui ne fonctionne pas depuis le retour de la taille est toujours "-1"!

- Je utiliser un extrêmement simple formulaire html pour l'upload de fichier:

<html>
  <head>
    <title>File upload</title>
  </head>
  <body>
 <p>Choose file</p>
 <form enctype="multipart/form-data" method="POST" action="uploadFile">
   <input type="file" name="file" size="50">
   <input type="submit" value="Upload">
 </form>
  </body>
</html>

Donc maintenant à ma question; comment voulez-vous appliquer une restriction de taille de fichier à l'aide de jersey? Il doit y avoir une façon simple, sans avoir à recourir à la lecture de l'intégralité du fichier en mémoire (ByteArray) et ensuite obtenir la actuall taille, droite?

source d'informationauteur mattias_avelin