Невозможно просмотреть или отредактировать файлы в MS Office из нашего веб-приложения с помощью элемента управления ActiveX - PullRequest
0 голосов
/ 15 октября 2019

У меня есть интеграция Microsoft Office с моим веб-приложением, где есть возможность просматривать и редактировать загруженные файлы, нажимая кнопку редактирования, которая открывает файл в соответствующем программном обеспечении Microsoft. Например, если файл слова загружен, то при нажатии кнопки редактирования файл должен быть открыт в программе Microsoft Word. Я использую элементы управления ActiveX для этой функции для открытия документа с помощью приведенного ниже кода в IE:

spEditObj.EditDocument (FileURL);

Я подтвердил, что FileURL правильный, как при нажатии на кнопку редактирования. Кнопка, контрольная точка приходила сюда, где это значение FileURL подходит и эта функция [spEditObj.EditDocument (FileURL)] возвращает истинное значение, но содержимое файла не отображается.

Проблема в том, чтокогда я нажимаю на кнопку редактирования, открывается приложение Microsoft Word, но содержимое файла не отображается .

Я предполагаю, что это из-за неправильной установки MS Office илиможет быть из-за отсутствия некоторых DLL-файлов.

Можете ли вы предложить мне исправить это?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 18 октября 2019

Да .. похоже, эта проблема связана с проблемой аутентификации для каталога WebDAV. Решил его самостоятельно, изменив аутентификацию WebDAVDir с обычной аутентификации на аутентификацию Windows из диспетчера служб IIS.

0 голосов
/ 15 октября 2019

Пожалуйста, проверьте разрешение файла, есть ли у вас разрешение на чтение и запись.

Я создал образец, используя следующий код, он хорошо работает на моей машине, вы можете сослаться на него:

    <script src="Scripts/jquery-1.10.2.js"></script>
    <script type="text/javascript"> 
        $(function () { 
            $('a').on('click', function () {
                var file = $(this).attr('href');

                // This is what does the work.
                try {
                    try {
                        // get Word Active-X Object if Word is open.
                        var word = GetObject('', "Word.Application");
                    }
                    catch (e) {
                        // create new Word Active-X Object.
                        var word = new ActiveXObject("Word.Application");
                    }

                    word.Visible = true; // Make sure Word is visible.
                    word.Documents.Open(file); // Open the file you want.
                }
                catch (e) {
                    alert(e.description);
                }
                // End work.

                return false;
            });
        }); 
    </script>
    <a href="<local file path>">Readiness.docx</a>

[Примечание] нам нужно включить инициализацию, а активные элементы управления сценария не помечены как безопасные для сценариев (Меню инструментов браузера IE -> Свойства обозревателя -> Безопасность -> Пользовательский уровень -> включить инициализацию и сценарийактивные элементы управления x не помечены как безопасные для сценариев), проверьте и включите их.

...