Как открыть внешний файл из HTML - PullRequest
16 голосов
/ 19 сентября 2008

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

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

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

  1. Очевидная и простая вещь:
<a href="file://server/directory/file.xlsx">Click me!</a>
  1. A параметр, который я нашел в поиске 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?

Ответы [ 8 ]

15 голосов
/ 19 сентября 2008

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

<a href="file://///SERVER/directory/file.ext">file.ext</a>
2 голосов
/ 19 сентября 2008

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

1 голос
/ 19 сентября 2008

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

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

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

1 голос
/ 19 сентября 2008

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

<a href="file:///server/directory/file.xlsx">Click me!</a>
1 голос
/ 19 сентября 2008

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

Вы можете использовать что-то вроде в этом примере "ASP.Net Serve File For Download" (архивная копия 2 ).

0 голосов
/ 19 сентября 2008

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

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

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

0 голосов
/ 19 сентября 2008

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

0 голосов
/ 19 сентября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...