Я пытаюсь обеспечить защищенную функцию подачи файлов для сайта. Я рассмотрел несколько вариантов, которые подходят с моей текущей модели:Служба защищенного файла
- Использование XMLHttpRequest для извлечения содержимого файла, а затем предлагают либо дисплей или Сохранить как особенности в зависимости от типа файла и предпочтений пользователя.
Я понимаю, как использовать бинарные функции Ajax (BLOB, ArrayBuffer) для извлечения двоичных файлов, и я видел this shim для реализации HTML5 Сохранить как функцию, но я обеспокоен производительности с этой техникой Re: большие файлы. Я еще не тестировал, но я не ожидаю, что хорошая производительность будет загружать 1 ГБ + файл, используя эту технику.
- Настройка HTTP-заголовка по ссылке (см. Ниже), поэтому я могу передать токен аутентификации в заголовке, но все же файл передается непосредственно в браузер, как обычная загрузка, а не в результате проблемы с получением содержимого с помощью XMLHttpRequest.
Я бы предпочел этот метод, потому что он хорошо подходит для текущей системы проверки подлинности и потребует очень мало дополнительного кода, но насколько я могу судить, только Firefox поддерживает то, что я хочу делать.
Firefox может устанавливать HTTP-заголовки в сетевых вызовах, не инициированных явно кодом JavaScript, используя httpChannel: Firefox HTTP channels. Кто-нибудь знает, поддерживается ли эта функциональность в других браузерах? Я хочу иметь возможность установить ссылку, например. :
window.location.href = 'blah';
и имеют код наблюдения сетевого трафика, который устанавливает пользовательский заголовок HTTP:
httpChannel.setRequestHeader("X-Hello", "World", false);
Хотя это очень здорово, что Firefox может сделать это, мне нужно решение кросс-браузерный. Я видел этот вопрос:
Setting request header, in a URL
, которая в основном то, что я хочу сделать, но только рекомендуемое решение есть настройки куки сессии, которые я не использую.
Это звучит как проблема XY. Каков ваш прецедент? – charlietfl
Возможно, да, позвольте мне повторить проблему. –
Что случилось с обычным входом в систему и разрешить загрузку только аутентифицированных пользователей? – PeeHaa