Question

Je suis en train de gérer un téléchargement de fichier, et j'utilise la classe com.oreilly.servlet.multipart.MultipartParser pour analyser le posté des données (en cos.jar). Cependant, quand je l'appelle le constructeur pour MultipartParser, je reçois ce exception:

java.io.IOException: Corrupt form data: premature ending
    at com.oreilly.servlet.multipart.MultipartParser.<init>(MultipartParser.java:166)
    at com.oreilly.servlet.multipart.MultipartParser.<init>(MultipartParser.java:94)

Quelqu'un at-il vu cela auparavant? D'après ce que je lis, cela signifie que le données a pris fin avant de trouver la limite qu'il cherchait. Comment puis-je résoudre ce problème?

J'utilise la version 1.0 cos.jar.

Merci!

Était-ce utile?

La solution 2

Alors, le problème a été causé par moi appelant le constructeur MultipartParser deux fois, par accident. Il a échoué la deuxième fois, puisque la demande avait déjà été traité.

Autres conseils

http://www.servlets.com/cos/faq.html

  

Cela indique qu'il y avait un problème   analyse de la requête POST présentée par   le client. Il peut y avoir de nombreuses causes   pour le problème:

     
      
  • Le client a frappé la touche STOP (pas vraiment un problème, mais il ne provoque une   fin prématurée)
  •   
  • Un bug dans le formulaire Web
  •   
  • Un bug dans le servlet
  •   
  • Un bug dans le serveur Web
  •   
  • Un bug dans le navigateur
  •   
  • Un bug dans la bibliothèque elle-même com.oreilly.servlet
  •   
     

L'histoire a montré le serveur Web pour être   la cause la plus fréquente de problèmes   probablement parce qu'il ya tant de   différents serveurs et quelques fournisseurs   semblent tester leur téléchargement binaire   capacité.

     

Tout d'abord, assurez-vous que votre client n'est pas   appuyer sur le bouton STOP. Puis vérifier   si votre problème est déjà affiché sur   les « bugs Servlet vous devez savoir   A propos de » ressources sur ce site. Si c'est   pas bien connu, alors vous être   parmi les premiers à en apprendre davantage à ce sujet! Et   vous pouvez partager votre découverte avec nous   ici!

     

En second lieu, si le téléchargement fonctionne à l'aide   la forme prévue et Upload.html   DemoRequestUploadServlet.java classe.   Certaines personnes ont trouvé des bugs dans leur   forme qui a causé des problèmes. Essai   cette combinaison si c'est   l'affaire. Un utilisateur, Duke Takle, a trouvé   cette exception a été causée par un   redirect: Je ressentais la même   « Fin prématurée », comme Albert Smith.   Ce que j'ai trouvé est que le problème   a été isolé à I.E. 5.0. le   application qui me faisais troublé   une redirection après la construction d'une   MultipartRequest. Il ressemble à ceci   la construction a bien sauf C.-À   5.0 le navigateur a tenté de faire à nouveau la demande et à ce moment la   ServletInputStream était vide. J'ai   modifié l'application simplement   écrire la réponse à la place nécessaire de   redirigeant. Ce problème a été observé   et fixe comme décrit dans Tomcat 4.0   et Weblogic 6.1. D'autres utilisateurs ont   bugs trouvés dans leur servlet de manutention   où ils appellent request.getParameter ()   au lieu de   multipartRequest.getParameter (), et   certains serveurs lisent à tort l'entrée   écouter lorsque leur getParameter () est   appelé provoquant une « fin inattendue de   partie ».

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