Автоматическая загрузка файлов из браузера - PullRequest
2 голосов
/ 13 августа 2010

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

Но повышенные разрешения - это то, чтоУ меня есть, потому что приложение работает в интрасети, и пользователь в настоящее время разрешает доступ к элементу управления ActiveX, что позволяет сканировать некоторые документы с помощью COM.Затем необходимо загрузить отсканированный документ, сохраненный в файловой системе.

Теперь единственным требованием браузера является совместимость с IE7 +.Но в IE8 единственный способ установить значение <input type="file" ... /> - это вручную нажать кнопку «Обзор».

Действительно ли невозможно установить значение в поле формы ввода, даже если сайт добавлен в доверенные сайтыа полный доступ к коду ActiveX включен?

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

ActiveX и Java-апплет, вероятно, могли бы это делать.Если использование <input type="file" ... /> не вариант, существует ли какой-либо облегченный (возможно, бесплатный / с открытым исходным кодом) элемент управления ActiveX, который будет обрабатывать загрузку из файловой системы?

update

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

Как отметил Джесси, существуют проблемы с доверием и лицензией для сторонних элементов управления ActiveX.

1 Ответ

5 голосов
/ 15 августа 2010

Вы правы, что RIA, такие как Flash, Silverlight и Java, не позволят этого по соображениям безопасности, и что доверенное приложение Silverlight OOB будет работать технически, но не будет идеально.

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

Я бы предложил написать для этого свой собственный элемент управления ActiveX, но не забудьте продумать последствия для безопасности.Например, вы, вероятно, захотите убедиться, что этот элемент управления может использоваться только доверенными веб-сайтами в сети вашей компании - это иногда называется «блокировкой сайта».

Вот хорошая страница по написанию безопасных элементов управления ActiveX.: http://msdn.microsoft.com/en-us/library/bb250471(VS.85).aspx

...