0

社内で使用する Firefox 拡張機能を作成しています。基本的に、pdf ファイルといくつかのテキスト値を Web サービスに送信する必要があります。現在、これを行うhtmlページがあります。データの収集と Web サービスへの送信を自動化するための拡張機能が必要です。

これが機能するhtmlです。

<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>

これはそうではないJavaScriptです

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();

js でデータを送信すると、サーバーから次の例外が発生します。例外

javax.servlet.ServletException: com.sun.jersey.api.container.ContainerException: javax.mail.MessagingException: 開始境界がありません

何か案は?

4

2 に答える 2

2

ファイル入力の値を設定することはできません。そうしないと、人々のマシンからファイルを盗むことができます。

于 2009-09-08T19:49:36.877 に答える
0

<input type="file">セキュリティ上の理由から、フィールドの値を変更できないと思います。これを自動化する別の方法を見つける必要があるでしょう。

于 2009-09-08T19:48:50.183 に答える