0

В моем .htaccess мне удалось активировать всплывающее окно с параметрами save-as и open для загрузки файлов, причем эти файлы являются изображениями, jpg, jpeg , png и т. д. Это прекрасно работает.Активировать всплывающее окно save-as или open для видеофайлов

Вот код:

<IfModule mod_headers.c> 
    <FilesMatch "\.jpg$"> 
     Header append Content-Disposition "attachment;" 
    </FilesMatch> 

    <FilesMatch "\.jpeg$"> 
     Header append Content-Disposition "attachment;" 
    </FilesMatch> 

    <FilesMatch "\.png$"> 
     Header append Content-Disposition "attachment;" 
    </FilesMatch> 

    <FilesMatch "\.ogv$"> 
     Header append Content-Disposition "attachment;" 
    </FilesMatch> 

    <FilesMatch "\.mov$"> 
     Header append Content-Disposition "attachment;" 
    </FilesMatch> 

    <FilesMatch "\.avi$"> 
     Header append Content-Disposition "attachment;" 
    </FilesMatch> 

    <FilesMatch "\.mp4$"> 
     Header append Content-Disposition "attachment;" 
    </FilesMatch> 
</IfModule> 

Теперь я хочу, чтобы иметь ту же функцию для видеофайлов (О, AVI, MP4 и т.д.), и я добавил код таким же образом, но это не делает работать с видеофайлами, как заставить это решение работать?

ответ

1

Вы можете использовать AddType, чтобы заставить загрузки:

AddType application/octet-stream .ogv 
AddType application/octet-stream .avi 
AddType application/octet-stream .mp4 

В качестве альтернативы, вы можете использовать этот метод, и включать другие типы файлов вы alrady сделали:

<FilesMatch "\.(jpe?g|png|ogv|mov|avi|mp4)$" > 
    ForceType application/octet-stream 
    Header add Content-Disposition "attachment" 
</FilesMatch> 

Это также можно выбрать вариант:

RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule \.(jpe?g|png|ogv|mov|avi|mp4)$ - [T=application/octet-stream] 

Относительно Firefox: Похоже, что для FF требуется указать имя файла. Это самый лучший способ, которым я могу думать это делать - и это, кажется, работает отлично:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^(.+).(jpe?g|png|ogv|mov|avi|mp4)$ - [env=filename:$1.$2] 

<FilesMatch "\.(jpe?g|png|ogv|mov|avi|mp4)$" > 
    ForceType application/octet-stream 
    Header add Content-Disposition "attachment; filename=%{filename}e" 
</FilesMatch> 

Здесь мы проверять, если запрос для существующего файла, и если файл заканчивается с некоторое расширение. Если это так, установите переменную среды, называемую filename, и передайте ее на Header add. На самом деле это действительно волшебный. Firefox достаточно строг и с некоторыми другими вещами - так это хорошо знать.

+0

Привет, Майк, спасибо. Он работает в Chrome и IE, но не в последнем Firefox. Видеофайлы в Firefox приносят суп всего кода скремблирования в моем браузере при нажатии загрузки (файлы изображений работают хорошо, хотя). Есть идеи? – raulbaros

+0

Хмм, возможно, попробуйте изменить 'Header add' на' Header set' ... –

+0

Также добавили третий вариант. Должен сказать, хотя - иногда иногда бывает странно странно. –