Как открыть внешний файл из HTML

Мне нужен список гиперссылок на базовой html-странице, которые указывают на файлы в нашей корпоративной интрасети.

Когда пользователь щелкает ссылку, я хочу, чтобы файл открылся. Это электронные таблицы Excel, а это среда интрасети, поэтому я могу рассчитывать, что у всех установлен Excel.

Я пробовал две вещи:

  1. Очевидная и простая вещь:
<a href = "file://server/directory/file.xlsx">Click me!</a>
  1. Опция , которую я нашел в поиске Google:
<HTML>
<HEAD>
    <SCRIPT LANGUAGE=VBScript>
    Dim objExcel

    Sub Btn1_onclick()
    call OpenWorkbook("\server\directory\file.xlsx")
    End Sub

    Sub OpenWorkbook(strLocation)

    Set objExcel = CreateObject("Excel.Application")
    objExcel.Visible = true
    objExcel.Workbooks.Open strLocation
    objExcel.UserControl = true
    End Sub

    </SCRIPT>
    <TITLE>Launch Excel</Title>
</HEAD>
<BODY>
    <INPUT TYPE=BUTTON NAME=Btn1 VALUE = "Open Excel File">
</BODY>
</HTML> 

Я знаю, что это очень простой вопрос, но я был бы признателен за любую помощь, которую смогу получить.

Обновлено: какие-либо предложения, которые работают как в IE, так и в Firefox?

в чем именно проблема?: Кажется, что оба они должны работать (ну, я не очень разбираюсь в VBScript, но при условии, что этот код правильный ...).

Asmor 19.09.2008 16:50
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
18
1
198 767
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

<a href = "file://server/directory/file.xlsx" target = "_blank">, если я правильно помню.

Работает в IE, но не в firefox. Собираюсь попробовать предложение по несоответствию типов.

JosephStyons 19.09.2008 16:53

Раньше ваша первая идея была такой, но я также заметил проблемы с использованием Firefox, попробуйте прямой http: // в файл - href = 'http: //server/directory/file.xlsx'

Простая ссылка на файл - очевидное решение. Вам просто нужно убедиться, что ссылка действительна и действительно указывает на файл ...

Я согласен. Итак, как мне реализовать такую ​​простую ссылку в HTML?

JosephStyons 19.09.2008 17:02

Если общий файловый ресурс открыт не для всех, вам нужно будет обслуживать его в фоновом режиме из файловой системы через веб-сервер.

Вы можете использовать что-то вроде этот пример «Файл обслуживания ASP.Net для загрузки» (архивная копия 2).

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

JosephStyons 19.09.2008 16:57

Вам может понадобиться дополнительный "/"

<a href = "file:///server/directory/file.xlsx">Click me!</a>

Если ваш веб-сервер - IIS, вам необходимо убедиться, что новые типы MIME Office 2007 (я вижу суффикс xlsx) добавлены в список типов MIME в IIS, в противном случае он откажется обслуживать неизвестный тип файла.

Вот одна ссылка, чтобы рассказать вам, как:

Настройка IIS 6 для Office 2007

Ответ принят как подходящий

Попробуйте отформатировать ссылку следующим образом (выглядит адски, но у меня работает в Firefox 3 под Vista):

<a href = "file://///SERVER/directory/file.ext">file.ext</a>

Потрясающие. Я знал, что это должно быть что-то простое. У меня работает в Ffx и IE. Я использую XP, для протокола.

JosephStyons 19.09.2008 17:04

Я думаю, у вас может быть слишком много косых черт. Вам нужно 2 для протокола file: // и 2 для имени сервера // SERVER /.

Orion Adrian 27.01.2009 20:42

У меня работает с пятью косыми чертами, а не с четырьмя, которые вам могут понадобиться. Не спрашивайте меня, почему ...

David Heggie 29.01.2009 15:21

Firefox действительно нужно пять слэшей.

Gleb 18.04.2009 02:56
en.wikipedia.org/wiki/File_URI_scheme#Mozilla the fifth slash separates the implied localhost after file:// from the server //SERVER
Simon D 31.10.2011 06:23

@DavidHeggie: как это можно сделать в cshtml (razor) .net 2010

14578446 26.01.2012 20:10

Я почти уверен, что этот маленький хакер больше не работает в Google Chrome, по крайней мере, я не могу заставить его работать в моем приложении :(

Vidar 07.03.2013 22:41

Вам придется полагаться на то, что каждая машина имеет правильные ассоциации файлов. Если вы попытаетесь открыть приложение из JavaScript / VBScript на веб-странице, порожденное приложение либо само будет изолировано в песочнице (что означает уменьшение разрешений), либо будет много запросов безопасности.

Я предлагаю поискать это на сервере SharePoint. Мы знаем, что они это делают, и вы можете редактировать их на месте, но вопрос в том, как им это удается. Я предполагаю прямую интеграцию с Office. В любом случае, Интернет не предназначен для этого, потому что я предполагаю, что вы хотите, чтобы они редактировали исходный документ, а не просто создавали свою собственную копию (каковым будет поведение file:// по умолчанию.

Таким образом, в зависимости от ваших вариантов, возможно, будет возможно создать клиентское приложение, которое будет установлено на всех ваших клиентских машинах, а затем будет реагировать на определенный обработчик файлов, который говорит, что откройте это приложение на файловом сервере. Тогда не имеет значения, кто это делает, поскольку все браузеры просто передадут вам запрос. Вам нужно будет создать свой собственный обработчик, например fileserver://.

Другие вопросы по теме