Href file не работает

Как создать ссылку на локальный файл на локально запущенной веб-странице?

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

проблема в том, что я хотел бы, чтобы ссылки функционировали как ярлык для файла. Я пробовал следующее:

. но первая ссылка ничего не делает, а вторая ссылка открывает файл в Chrome, а не VLC.

мои вопросы являются:

есть ли способ настроить мой HTML, чтобы рассматривать ссылки как ярлыки для файлов?

Если нет способа настроить HTML, есть ли другие способы аккуратно связать файлы, разбросанные по всему жесткому диску?

Мой компьютер работает под управлением Windows 7, а мой веб-браузер-Chrome.

5 ответов

вам нужно использовать file:/// протокол (да, это три косых черты), если вы хотите связать с локальными файлами.

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

некоторые браузеры, такие как современные версии Chrome, даже отказываются переходить от протокола http к файловому протоколу, поэтому вам лучше убедиться, что вы открываете это локально, используя файловый протокол, если вы хотите сделать это вообще.

почему он застрял без file:/// ?

первая часть URL — это протокол. Протокол состоит из нескольких букв, затем двоеточие и две косые черты. HTTP:// и FTP:// действительны протоколов; C:/ нет, и я уверен, что это даже толком не похож.

C:/ также не является допустимым веб-адресом. Браузер может предположить, что это должно быть http://c/ С указанным пустым портом, но это произойдет сбой.

Ваш браузер может не предполагать, что он ссылается на локальный файл. У него мало причин делать это предположение, потому что общедоступные сайты обычно не пытаются ссылаться на локальные файлы людей.

Итак, если вы хотите получить доступ к локальным файлам: скажите ему использовать файл протокол.

почему в три раза?

потому что это часть схема URI файла. У вас есть возможность указать хост после первых двух косых черт. Если вы пропустите указание хоста, он просто предположит, что вы ссылаетесь на файл на своем собственном ПК. Другими словами: file:///C:/etc ярлык для file://localhost/C:/etc .

эти файлы по-прежнему открываются в браузере и это хорошо

Ваш браузер будет реагировать на эти файлы точно так же они ответят на один и тот же файл в любом месте интернета. Эти файлы не будет откройте в обработчике файлов по умолчанию (например, MS Word или VLC Media Player), и вы не будет можно сделать что-нибудь вроде ask File Explorer, чтобы открыть местоположение файла.

это очень хорошо для вашей безопасности.

сайты в браузере не может взаимодействовать с вашей операционной системой. Если хороший сайт может сказать лекция.mp4 открыть в VLC.exe, вредоносный сайт может сказать ему, чтобы открыть .летучая мышь!—50—> на CMD.exe. Или он может просто сказать вашему ПК, чтобы запустить несколько удалить.exe файлы, или открыть проводник в миллион раз.

это может быть неудобно для вас, но HTML и безопасность браузера на самом деле не предназначены для того, что вы делаете. Если вы хотите иметь возможность открыть лекция.mp4 in VLC.exe, подумайте о написании настольного приложения вместо этого.

Если вы используете IIS на вашем компьютере, вы можете добавить каталог, который вы пытаетесь достичь в качестве виртуального каталога. Для этого щелкните правой кнопкой мыши на своем сайте в ISS и нажмите «Добавить виртуальный каталог». Назовите виртуальную папку. Укажите виртуальную папку в папку на локальном компьютере. Вы также должны предоставить учетные данные, которые имеют права доступа к определенной папке, например. Имя хоста\имя пользователя и пароль. После этого вы можете получить доступ к файлу в виртуальной папке, как и к любому другому файлу ваш сайт.

Читайте также:  Не работает камера заднего вида пролоджи

кстати, это также работает с Chrome, который в противном случае не принимает файл-протокол file://

надеюсь, это кому-то поможет:)

Janky в лучшем случае

а затем щелкните правой кнопкой мыши, выберите опцию» копировать местоположение», а затем вставьте в url.

Источник

href=»file://» doesn’t work

I have a problem with: href=»file://» Well I want to point a link in html to file, in browser if I write like

It works to open a file, but if I point it to:

It doesn’t work. link is changed to:

The colon after file disappears. Any suggestions as to what to do?

4 Answers 4

The reason your URL is being rewritten to file///K:/AmberCRO%20SOP/2011-07-05/SOP-SOP-3.0.pdf is because you specified http://file://

The http:// at the beginning is the protocol being used, and your browser is stripping out the second colon (:) because it is invalid.

Note

If you link to something like

The above represents a link to a file called k:/yourfile.pdf on the k: drive on the machine on which you are viewing the URL.

You can do this, for example the below creates a link to C:\temp\test.pdf

By specifying file:// you are indicating that this is a local resource. This resource is NOT on the internet.

Most people do not have a K:/ drive.

But, if this is what you are trying to achieve, that’s fine, but this is not how a «typical» link on a web page works, and you shouldn’t being doing this unless everyone who is going to access your link has access to the (same?) K:/drive (this might be the case with a shared network drive).

Источник

Как сделать так, чтобы HTML-ссылка открывала папку

Мне нужно разрешить пользователям приложения открывать папку, щелкая ссылку на веб-странице. Путь к папке находится в сети и доступен отовсюду. Я наверное уверен, что нет простого способа сделать это, но может я ошибаюсь?

Вы хотите открыть общую папку в проводнике Windows? Вам нужно использовать file: ссылку, но есть предостережения:

  • Internet Explorer будет работать, если ссылка представляет собой преобразованный путь UNC ( file://server/share/folder/ ).
  • Firefox будет работать, если ссылка находится в собственной искаженной форме с использованием пяти косых черт ( file://///server/share/folder ) и пользователь отключил ограничение безопасности для file: ссылок на странице, обслуживаемой через HTTP . К счастью, IE также принимает искаженную форму ссылки.
  • Opera, Safari и Chrome невозможно убедить открыть file: ссылку на странице, обслуживаемой через HTTP.

URL-адрес file://[servername]/[sharename] должен открывать окно проводника для общей папки в сети.

убедитесь, что права доступа к вашей папке установлены так, что разрешен список каталогов, а затем просто укажите привязку к этой папке с помощью chmod 701 (хотя это может быть рискованно), например

убедитесь, что у вас нет index.html любого индексного файла в этом каталоге

Использование file: ///// просто не работает, если настройки безопасности установлены даже на средний уровень.

Если вы просто хотите, чтобы пользователи могли загружать / просматривать файлы *, расположенные в сети или совместно используемые, вы можете настроить виртуальный каталог в IIS. На вкладке «Свойства» убедитесь, что выбран «Общий ресурс, расположенный на другом компьютере», а «Подключиться как . » — это учетная запись, которая может видеть сетевое расположение.

Ссылка на виртуальный каталог со своей веб-страницы (например, http: // yoursite / yourvirtualdir / ), и это откроет представление каталога в веб-браузере.

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

Читайте также:  Haier app store не работает

Источник

Обходной путь для href= «file://///…» в Firefox

На сайте интрасети позвольте мне сказать, что я хочу связать файл с общим ресурсом с помощью UNC, по адресу:

Кажется, правильный способ сделать это с помощью разметки следующим образом:

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

Это отлично работает в IE7, но в Firefox 3.6 он будет работать, только если html – из локального файла. Я не могу заставить его работать, когда файл поступает с веб-сервера. Ссылка “мертвая” – щелчок на ней ничего не делает.

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

Так как это, очевидно, функция Firefox, а не ошибка, может кто-нибудь объяснить, в чем преимущество заключается в предотвращении такого типа ссылки?

Как оказалось, я не знал, что Firefox имеет это ограничение/функцию. Я могу сочувствовать этой функции, так как она мешает пользователю невольно получать доступ к локальной файловой системе. К счастью, есть полезные альтернативы, которые могут обеспечить аналогичный пользовательский интерфейс при использовании протокола HTTP.

Одной из альтернатив доступу к контенту через UNC-пути является публикация вашего контента с использованием протокола WebDAV. Некоторые системы управления контентом, такие как MS SharePoint, используют WebDAV для обеспечения доступа к документам и страницам. Что касается опыта конечного пользователя, он выглядит и чувствует себя так же, как доступ к сетевым файлам с UNC-путём; однако все взаимодействия с файлами выполняются через HTTP.

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

Вот несколько ссылок, которые могут быть полезны, если вам интересно узнать больше о настройке и использовании WebDAV на нескольких ведущих серверах HTTP:

Этот вопрос задавали как минимум два раза раньше, но я не смог найти эти сообщения, прежде чем публиковать свои собственные (извините):

Вот краткое изложение ответов из всех трех сообщений:

  • Использовать WebDAV — это лучшее решение для меня, хотя и гораздо более активное, чем я ожидал.
  • Используйте http:// вместо file:///// — это будет копировать документ, который пользователь не может редактировать и сохранять.
  • Отредактируйте user.js на клиенте, как описано здесь — это работало для меня в Firefox 3.6.15, но без доступа к клиентским машинам это не решение.
  • В Firefox используйте about: config, измените параметр Security.fileuri.strict_origin_policy на false — это не работает для меня в 3.6.15. Другие пользователи в [SO] также сообщили, что они не работают.
  • Используйте расширение locallinks Firefox — это устанавливает для Security.fileuri.strict_origin_policy значение true для вас и не имеет другого эффекта.
  • Прочитайте файл-сервер и отправьте его как ответ — это создает ту же проблему, что и просто настройка веб-сервера для использования http:// .

Браузеры, такие как Firefox, отказываются открывать файл://link, когда сама родительская страница HTML обслуживается с использованием другого протокола, например http://.

Лучше всего настроить ваш веб-сервер для предоставления сетевого сопоставленного файла в качестве веб-ресурса, чтобы к нему можно было получить доступ по http://с того же сервера, а не по файлу://.

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

В Firefox для открытия File:\\\\\yourFileServer\docs\doc.txt например, вам нужно включить некоторые параметры в конфигурации Firefox:

Я не знаю, будет ли это работать, но дайте ему шанс! Старая статья, но потенциально все еще полезна.

Источник

Как создать ссылку на локальный файл на локально запущенной веб-странице?

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

проблема в том, что я хотел бы, чтобы ссылки функционировали как ярлык для файла. Я пробовал следующее:

. но первая ссылка ничего не делает, а вторая ссылка открывает файл в Chrome, а не VLC.

Читайте также:  Как настроить трансляцию каналов

мои вопросы являются:

есть ли способ настроить мой HTML для обработки ссылок в качестве ярлыков для файлов?

Если нет способа настроить HTML, есть ли другие способы аккуратно связать файлы, разбросанные по всему жесткому диску?

Мой компьютер работает под управлением Windows 7 и мой веб-браузер Chrome.

5 ответов:

вы должны использовать file:/// протокол (да, это три косые черты), если вы хотите связать с локальными файлами.

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

некоторые браузеры, такие как современные версии Chrome, даже откажутся переходить из протокола http в протокол file, поэтому вам лучше убедиться, что вы открываете это локально, используя протокол file, если вы хотите сделать это вообще.

почему он застревает без file:/// ?

первая часть URL — это протокол. Протокол — это несколько букв, затем двоеточие и две косые черты. HTTP:// и FTP:// действительны протоколов; C:/ нет, и я уверен, что это даже толком не похож на него.

C:/ также не является допустимым веб-адресом. Браузер может предположить, что это должно быть http://c/ С указанным пустым портом, но это не сработает.

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

Итак, если вы хотите получить доступ к локальным файлам: скажите ему использовать файл протокол.

почему в три раза?

потому что это часть схема URI файла. У вас есть возможность указать хост после первых двух косых черт. Если вы пропустите указание хоста, он просто предположит, что вы ссылаетесь на файл на своем собственном ПК. Другими словами: file:///C:/etc ярлык для file://localhost/C:/etc .

эти файлы по-прежнему открываются в браузере и это хорошо

Ваш браузер будет реагировать на эти файлы точно так же они отвечают на один и тот же файл в любом месте в интернете. Эти файлы не будет откройте в своем обработчике файлов по умолчанию (например, MS Word или VLC Media Player), и вы не будет можно сделать что-нибудь вроде ask File Explorer, чтобы открыть местоположение файла.

это очень хорошая вещь для вашей безопасности.

сайты в браузере не может взаимодействовать с вашей операционной системой. Если бы хороший сайт мог сказать lecture. mp4 to open in VLC.exe, вредоносный сайт может сказать ему, чтобы открыть .летучая мышь in CMD.exe. Или он может просто сказать вашему компьютеру, чтобы запустить несколько удалить.exe файлы, или открыть файловый проводник миллион раз.

это может быть неудобно для вас, но HTML и безопасность браузера на самом деле не предназначены для того, что вы делаете. Если вы хотите иметь возможность открытьlecture. mp4 in VLC.exe, рассмотрите возможность написания настольного приложения вместо этого.

Если вы используете IIS на вашем компьютере, вы можете добавить каталог, который вы пытаетесь достичь в качестве виртуального каталога. Для этого вы щелкните правой кнопкой мыши на своем сайте в ISS и нажмите «Добавить виртуальный каталог». Назовите виртуальную папку. Наведите виртуальную папку в папку, расположенную на локальном компьютере. Вы также должны предоставить учетные данные, которые имеют привилегии для доступа к определенной папке, например. Имя хоста\имя пользователя и пароль. После этого вы можете получить доступ к файлу в виртуальной папке, как и к любому другому файлу ваш сайт.

кстати, это также работает с Chrome, который в противном случае не принимает файл-протокол file://

надеюсь, это кому-то поможет 🙂

а затем щелкните правой кнопкой мыши, выберите опцию «копировать местоположение», а затем вставьте в url.

У меня есть способ и работать так:

Источник

Оцените статью