Question

J'écris une extension Firefox qui est à utiliser dans la maison. En fait, je dois soumettre un fichier pdf et certaines valeurs de texte à un service Web. En ce moment, j'ai une page html qui fait cela. J'ai besoin de l'extension pour automatiser la collecte et la soumission des données au service Web.

Voici le code html qui fonctionne.

<body>
<form name="frm_upload_file" enctype="multipart/form-data" method="post" action="my web service address">
<table cellpadding="2" cellspacing="0" border="0">
    <tr>
        <td>ClientID</td>
    <td><input type="text" name="client_id" /></td>
</tr>

<tr>
   <td>HTML</td>
   <td><input type="text" name="html" /></td>
</tr>
<tr>
   <td align="right" class="inputtxt"> File: </td>
   <td class="inputtxt">

       <input name="pdf" type="file" />
   </td>
</tr>
<tr>
   <td align="left" colspan="2" class="inputtxt">
       <p><br /><input type="submit" name="submit" value="Submit" /></p>
   </td>
</tr>
</table>

Voici le javascript qui ne fonctionne pas

postToURL: function(html, file) {
var form = content.document.createElement("form");
form.setAttribute("enctype", "multipart/form-data");
form.setAttribute("method", "post");
form.setAttribute("action", "address to my web service");

var clientIDField = document.createElement("input");
clientIDField.setAttribute("type", "text");
clientIDField.setAttribute("name", "client_id");
clientIDField.setAttribute("value", "123456");
form.appendChild(clientIDField);

var htmlField = document.createElement("input");
htmlField.setAttribute("type", "text");
htmlField.setAttribute("name", "html");
htmlField.setAttribute("value", html);
form.appendChild(htmlField);    

var fileField = document.createElement("input");
fileField.setAttribute("type", "file");
fileField.setAttribute("name", "pdf");
fileField.setAttribute("value", file);
form.appendChild(fileField);

content.document.body.appendChild(form);    
form.submit();

Lors de la présentation des données avec les js, je reçois l'exception suivante à partir du serveur. exception

javax.servlet.ServletException: com.sun.jersey.api.container.ContainerException: javax.mail.MessagingException: limite missing

Toutes les idées?

Était-ce utile?

La solution

Vous ne pouvez pas définir la valeur d'une entrée de fichier -. Sinon vous pouvez voler des fichiers des machines des gens

Autres conseils

Je ne pense pas que vous pouvez modifier la valeur d'un champ de <input type="file"> pour des raisons de sécurité. Vous aurez probablement besoin de trouver un autre moyen d'automatiser cela.

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