Мне нужен список гиперссылок на базовой html-странице, которые указывают на файлы в нашей корпоративной интрасети.
Когда пользователь щелкает ссылку, я хочу, чтобы файл открылся. Это электронные таблицы Excel, а это среда интрасети, поэтому я могу рассчитывать, что у всех установлен Excel.
Я пробовал две вещи:
<a href = "file://server/directory/file.xlsx">Click me!</a>
<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?






<a href = "file://server/directory/file.xlsx" target = "_blank">, если я правильно помню.
Работает в IE, но не в firefox. Собираюсь попробовать предложение по несоответствию типов.
Раньше ваша первая идея была такой, но я также заметил проблемы с использованием Firefox, попробуйте прямой http: // в файл - href = 'http: //server/directory/file.xlsx'
Простая ссылка на файл - очевидное решение. Вам просто нужно убедиться, что ссылка действительна и действительно указывает на файл ...
Я согласен. Итак, как мне реализовать такую простую ссылку в HTML?
Если общий файловый ресурс открыт не для всех, вам нужно будет обслуживать его в фоновом режиме из файловой системы через веб-сервер.
Вы можете использовать что-то вроде этот пример «Файл обслуживания ASP.Net для загрузки» (архивная копия 2).
В этом случае аутентификация уже выполняется до того, как они попадут на эту веб-страницу. Любой, кто попадает сюда, должен иметь доступ к этим файлам и к каталогу, в котором они хранятся. Я действительно хочу, чтобы это было просто.
Вам может понадобиться дополнительный "/"
<a href = "file:///server/directory/file.xlsx">Click me!</a>
Если ваш веб-сервер - IIS, вам необходимо убедиться, что новые типы MIME Office 2007 (я вижу суффикс xlsx) добавлены в список типов MIME в IIS, в противном случае он откажется обслуживать неизвестный тип файла.
Вот одна ссылка, чтобы рассказать вам, как:
Попробуйте отформатировать ссылку следующим образом (выглядит адски, но у меня работает в Firefox 3 под Vista):
<a href = "file://///SERVER/directory/file.ext">file.ext</a>
Потрясающие. Я знал, что это должно быть что-то простое. У меня работает в Ffx и IE. Я использую XP, для протокола.
Я думаю, у вас может быть слишком много косых черт. Вам нужно 2 для протокола file: // и 2 для имени сервера // SERVER /.
У меня работает с пятью косыми чертами, а не с четырьмя, которые вам могут понадобиться. Не спрашивайте меня, почему ...
Firefox действительно нужно пять слэшей.
@DavidHeggie: как это можно сделать в cshtml (razor) .net 2010
Я почти уверен, что этот маленький хакер больше не работает в Google Chrome, по крайней мере, я не могу заставить его работать в моем приложении :(
Вам придется полагаться на то, что каждая машина имеет правильные ассоциации файлов. Если вы попытаетесь открыть приложение из JavaScript / VBScript на веб-странице, порожденное приложение либо само будет изолировано в песочнице (что означает уменьшение разрешений), либо будет много запросов безопасности.
Я предлагаю поискать это на сервере SharePoint. Мы знаем, что они это делают, и вы можете редактировать их на месте, но вопрос в том, как им это удается. Я предполагаю прямую интеграцию с Office. В любом случае, Интернет не предназначен для этого, потому что я предполагаю, что вы хотите, чтобы они редактировали исходный документ, а не просто создавали свою собственную копию (каковым будет поведение file:// по умолчанию.
Таким образом, в зависимости от ваших вариантов, возможно, будет возможно создать клиентское приложение, которое будет установлено на всех ваших клиентских машинах, а затем будет реагировать на определенный обработчик файлов, который говорит, что откройте это приложение на файловом сервере. Тогда не имеет значения, кто это делает, поскольку все браузеры просто передадут вам запрос. Вам нужно будет создать свой собственный обработчик, например fileserver://.
в чем именно проблема?: Кажется, что оба они должны работать (ну, я не очень разбираюсь в VBScript, но при условии, что этот код правильный ...).