2009-05-27 6 views
0

J'ai une fonction Java qui génère des signatures numériques pour les fichiers XML. Voici un extrait qui me donne quelques problèmes:Téléchargement d'un fichier sur un serveur Apache

String boundary = MultiPartFormOutputStream.createBoundary(); 
HttpURLConnection urlConn = (HttpURLConnection)MultiPartFormOutputStream.createConnection(new URL(url + "/sign")); 
urlConn.setRequestProperty("Accept", "*/*"); 
urlConn.setRequestProperty("Content-Type", MultiPartFormOutputStream.getContentType(boundary)); 
urlConn.setRequestProperty("Cache-Control", "no-cache"); 
urlConn.setDOInput(true); 
urlConn.setDoOutput(true); 

MultiPartFOrmOutputStream up = new MultiPartFormOutputStream(urlCOnn.getOutputStream(), boundary); 
up.writeField(SignServletParams.detachedParam, "1"); 
up.writeFile(SignServletParams.xmlParam, "text/xml", "xml_file.xml", XMLUtil.toEncodedStream(doc); 
up.close(); 

Document ret = null; 
String connRead = ""; 
BufferedReader down = new BufferedReader(new InputStreamReader(urlCOnn.getINputStream())); 

Si toutefois, si le fichier xml est plus grand (a quelques milliers de nœuds), je tente et de télécharger des petits fichiers xml, il fonctionne très bien, je reçois un IOException où le BufferedReader est en cours de création. Le message d'exception indique simplement que le serveur a renvoyé un statut 500. J'ai vérifié les journaux du serveur Apache et indique ce qui suit:

Filtre d'entrée: Impossible de créer un fichier temporaire: « nom de fichier »

J'ai hérité ce code de quelqu'un d'autre qui l'a écrit, donc je suis Nous essayons toujours de tout rassembler, mais nous ne saurions pas trop pourquoi la fonction fonctionne pour les petits fichiers et échoue pour les plus gros.

+0

C'est donc un client java qui envoie le fichier XML, et Apache le gère? Y a-t-il un php dans l'image? – lucas

Répondre

0

Merci pour la suggestion Johannes, mais j'ai compris quel était le problème et je suis très stupide. Il s'avère que le répertoire pour la création de fichier temporaire spécifié par le fichier de configuration mod_security n'existe pas. Le changer pour un chemin de répertoire réel a tout fixé.

0

Je suis un noob désolé si c'est une réponse stupide, mais pourriez-vous sur le "uploaders-side" diviser le fichier en parties si nécessaire, et sur le "côté serveur" les fusionner à nouveau?

Questions connexes