Наименее сложный способ получить полные пути к файлам с помощью Javascript - PullRequest
2 голосов
/ 07 ноября 2011

Об этом уже много раз спрашивали: мне нужно получить полный путь к файлу через веб-страницу.Вариант использования - это приложение, работающее на той же машине, что и браузер (т. Е. Приложение запускает локальный HTTP-сервер и запускает браузер). Пути к файлам, конечно, действительны и одинаковы для обоих клиент / сервер.Сценарий использования: пользователь выбирает файл, а затем серверный процесс выполняет на нем некоторые вычисления, а входные файлы обычно имеют большой размер (читай: несколько ГиБ).

Самый простой способ - напрямуюполучить доступ к пути, используя, но по соображениям безопасности, это отключено.Сейчас я ищу наименее навязчивое решение этой проблемы.Целевым браузером, о котором идет речь, является Chrome.Я в порядке, если пользователю нужно нажать «Принять» один раз на каком-либо предупреждении безопасности, если я могу гарантировать, что оно не появится снова.

Нужно ли писать расширение, NSPlugin, могуЯ использую специальную магию заголовка, чтобы пометить свою страницу как "локальную". Могу ли я установить некоторые параметры безопасности?Чем меньше клиент должен работать лучше, и я предпочел бы какое-то решение «нажмите здесь, чтобы разрешить доступ ...», а не все остальное.Могу ли я напрямую установить расширение с серверного процесса, который будет делать это (после того, как пользователь нажмет на кнопку принять?)

Можно ли сделать это с помощью Java-апплета / Flash?Это было бы самым простым решением, и клиенты гарантированно установили Flash (как это предусмотрено в Chrome ...)

Ответы [ 2 ]

1 голос
/ 07 ноября 2011

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

0 голосов
/ 07 ноября 2011

Очевидно, что файл io в клиентской системе запрещен JavaScript.Если бы это было не так, взломать каждый веб-браузер, который посещает ваш сайт, было бы совершенно тривиально.

Battlefiled 3 управляется через браузер.Для этого советник написал расширение для трех лучших браузеров.Но это ресурсоемкий.Если вы просто заботитесь о Chrome, вы можете использовать аддон, и для этого я предлагаю использовать NPAPI .

И, как сказал MOleYArd, Java - хорошее решение и, вероятно, более распространенное, чем расширение или дополнение.

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