Общий метод для установки моделей, передаваемых в качестве аргументов, Angular JS

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

Link 1
Link 2

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

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

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

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

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

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

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

Почему три слэша?

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

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

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

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

Сайты в вашем браузере не могут очень хорошо взаимодействовать с вашей операционной системой. Если хороший сайт мог сказать lecture.mp4 , чтобы открыть в VLC.exe , вредоносный сайт мог бы сказать ему открыть virus.bat в cmd.exe . Или он может просто сказать вашему компьютеру запустить несколько файлов Uninstall.exe или открыть File Explorer миллион раз.

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

0
задан Dmitriy 6 March 2019 в 09:56
поделиться