-1

GWT で添付ファイル付きのメールを送信する方法があれば教えてください。添付ファイルなしで簡単なメールを送信することはできましたが、ファイルを追加しようとすると問題が発生します。

問題は、「FileUpload」がファイルのフルパスを提供しないことです

安全上の理由から、クライアントからファイルのフル パスを取得することはできないようです。論理サーバーを gwt クライアントに保持する別の方法はありますか?

私のコード

クライアント側:

FileUpload upload = new FileUpload();
// cannot retrieve the full path
String fileAttachment = upload.getName();

サーバ側:

public void sendMail(String sender, String[] recipients, String subject, String message, String fileAttachment) {  
        try {  
            ...(init)           

            // Part two is attachment
            messageBodyPart = new MimeBodyPart();


                   //   =>  fileAttachment need full path
            DataSource source = 
              new FileDataSource(fileAttachment);

            messageBodyPart.setDataHandler(
              new DataHandler(source));
            messageBodyPart.setFileName(fileAttachment);
            multipart.addBodyPart(messageBodyPart);

            // Put parts in message
            msg.setContent(multipart);

            // Send
            Transport.send(msg);
}

ご協力いただきありがとうございます

4

1 に答える 1

1

実際にファイルをサーバーにアップロードする必要があります。

GWT で最も簡単な方法は、FileUpload(およびすべてのフォーム入力ウィジェット) をFormPanel;に配置することです。ただし、エラー処理 (およびサーバーからの応答処理) がより困難になるという欠点があります。

最近のブラウザでは、別の方法として、 からFileオブジェクト (ではなくjava.io.FileJS オブジェクト)を取得し、FileUploadを使用してアップロードしますXMLHttpRequest(おそらく と組み合わせてFormData、他のフォーム値も送信します)。GWT では、これは JSNI を使用することを意味し (ライブラリを使用することも可能かもしれませElementalん)、自分が何をしているかの内部を本当に知っています。

いずれにしても、GWT-RPC を使用してサーバー通信し、同時にファイルを送信することはできません。

于 2013-07-11T09:19:37.900 に答える