- PR -

MimeMultipartでファイルが正しく送れない

1
投稿者投稿内容
未記入
会議室デビュー日: 2005/07/23
投稿数: 12
投稿日時: 2005-08-03 19:08
MimeMultipartを使ったファイルのやりとりを作っています。
ファイルの転送は行われるのですが、受け取ったファイルが壊れてしまいます。
(jpegなどで試すと表示できない)
受け取って作成したファイルの容量は転送前とほぼ同じです。

送るときがまずいのか、受け取ってファイル作成するときがまずいのかの見極めも、
ままならないのですが、アドバイスお願いします。

public static void main(String[] args) {

MimeMultipart multipart=new MimeMultipart();
MimeBodyPart bodyPart1 = new MimeBodyPart();
DataSource dataSource=new FileDataSource("c:/test.jpg");//送るファイルきめうち
DataHandler dataHandler=new DataHandler(dataSource);
try{
bodyPart1.setDataHandler(dataHandler);
multipart.addBodyPart(bodyPart1); // マルチパートにパート1を追加

}catch (MessagingException err){
System.err.println("System Error: " + err.toString());
}

Reciver(multipart);//ファイルを送る
System.out.println("おしまい");
}

public static void Reciver (MimeMultipart mime) {
int BodyPartCount = 0;

//含まれる BodyPart オブジェクトの数を取得
try{
BodyPartCount = mime.getCount();
}catch (MessagingException err){
System.err.println("System Error: " + err.toString());
}
if (BodyPartCount == 0){
//エラー処理入れる
}

OutputStream outFile = null;
try {

outFile = new BufferedOutputStream(new FileOutputStream("d:\\image\\output-file.jpeg"));//←とりあえず決め打ち
mime.writeTo(outFile);

}catch (MessagingException err){
System.err.println("System Error: " + err.toString());
} catch (FileNotFoundException e) {
System.err.println("System Error: " + e.toString());
} catch (IOException e) {
System.err.println("System Error: " + e.toString());
} finally {
try {
if (outFile != null) {
outFile.flush();
outFile.close();
}
} catch (Exception e) {
System.err.println("System Error: " + e.toString());
}
}
}
未記入
常連さん
会議室デビュー日: 2005/02/23
投稿数: 20
投稿日時: 2005-08-04 10:46
Multipartってどういう事か理解していますか?
複数のファイルを纏めて一つにするわけですから、受け取った側では纏まった一つを複数のファイルとして取り出す必要があります。
どれが該当のファイルなのか判断する必要がありますが、MimeMultipartのインスタンスからgetBodyPartで必要なファイルを取り出してください。
1

スキルアップ/キャリアアップ(JOB@IT)