Это должно быть возможно... Я нашел что-то похожее для использования со звуковыми дорожками: Feed File Читатель с сервера, а также этот: Чтение файлов на стороне сервера но я не могу собрать все вместе, чтобы заставить его работать!
Кроме того, мои голоса не учитываются, потому что у меня недостаточно очков репутации, но кому-то нужно проголосовать за Филипа за то, что более года назад он дал ответ на свой вопрос: Feed File Reader from Server! Хотел бы я понять, как изменить его для чтения сообщений.
Нижний сценарий (и несколько вспомогательных сценариев) читает файл msg, не открывая Outlook... он работает на стороне клиента с помощью кнопки «Обзор», которая бесполезна, поскольку файлы msg находятся на сервере. У меня работает xmlHTTPRequest, но я получаю страницу 404, когда пытаюсь отобразить файл .msg. Файл есть, потому что я могу изменить расширение на .txt, и он будет отображать тарабарщину... (может быть, я там, и его просто нужно куда-то подключить к скрипту чтения?) Кроме того, я подумал, если я использовал overrideMimType, это помогло бы, но он отображает [object blob].
xhr.overrideMimeType('text\/plain; charset=x-user-defined');
Как подобрать файл и приписать ему класс src-file? (Думаю, именно так это интерпретируется приведенным ниже сценарием.)
$(function () {
if (isSupportedFileAPI()) {
$('.src-file').change(function () {
var selectedFile = this.files[0];
if (!selectedFile) {
$('.msg-info, .incorrect-type').hide();
return;
}
if (selectedFile.name.indexOf('.msg') == -1) {
$('.msg-info').hide();
$('.incorrect-type').show();
return;
}
$('.msg-example .msg-file-name').html(selectedFile.name);
$('.incorrect-type').hide();
// read file...
var fileReader = new FileReader();
fileReader.onload = function (evt) {
var buffer = evt.target.result;
var msgReader = new MSGReader(buffer);
var fileData = msgReader.getFileData();
if (!fileData.error) {
$('.msg-example .msg-from').html(formatEmail({name: fileData.senderName, email: fileData.senderEmail}));
$('.msg-example .msg-to').html(jQuery.map(fileData.recipients, function (recipient, i) {
return formatEmail(recipient);
}).join('<br/>'));
$('.msg-example .msg-subject').html(fileData.subject);
$('.msg-example .msg-body').html(fileData.body ? fileData.body.substring(0, Math.min(500, fileData.body.length)) + (fileData.body.length > 500 ? '...' : '') : '');
$('.msg-example .msg-attachment').html(jQuery.map(fileData.attachments, function (attachment, i) {
return attachment.fileName + ' [' + attachment.contentLength + 'bytes]' + (attachment.pidContentId ? '; ID = ' + attachment.pidContentId : '');
}).join('<br/>'));
$('.msg-info').show();
// Use msgReader.getAttachment to access attachment content ...
// msgReader.getAttachment(0) or msgReader.getAttachment(fileData.attachments[0])
} else {
$('.msg-info').hide();
$('.incorrect-type').show();
}
};
fileReader.readAsArrayBuffer(selectedFile);
});
} else {
$('.msg-example').hide();
$('.file-api-not-available').show();
}
});
Заранее спасибо за любую помощь в этом...