msgparserを使用して Outlook .msg ファイルを読み取り、コンテンツを ServletOutputStream に書き込むサーブレットを作成して、URL がヒットしたらダウンロードできるようにしました。
私が直面している問題は、ダウンロードしたファイルを Outlook で開こうとすると、そのファイルがエラーを報告することです。
エラー:ファイルが存在しないか、ファイルにアクセスする権限がない可能性があるため、ファイルを開けません......
ファイルが正しい形式 (.msg) であっても、このようなエラーが発生します。解析中に何か間違ったことをしていると確信しています。提案してください。以下はサーブレットコードです:
MsgParser msgp = new MsgParser();
Message msg = msgp.parseMsg("D:\\Demo.msg");
String str1=msg.toString();
byte[] b=str1.getBytes();// here b is byte array
//The below code is to open show the pop up so that user can save the msg file..
response.setContentType("application/vnd.ms-outlook"+" ;charset=utf-8");
response.setHeader("Content-Disposition","attachment;filename=" + "Demo.msg");
ServletOutputStream servletOutputStream = response.getOutputStream();
DataOutput dataOutput = new DataOutputStream(servletOutputStream);
if (b!= null) {
response.setContentLength(b.length);
for (int i = 0; i < b.length; i++) {
dataOutput.writeByte(b[i]);
}
}
if (servletOutputStream != null) {
servletOutputStream.flush();
servletOutputStream.close();
}
PrintWriter pw = response.getWriter();
pw.println(dataOutput);