powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как загрузить файл в Safari на iPhone
2 сообщений из 2, страница 1 из 1
Как загрузить файл в Safari на iPhone
    #39265202
Быдло__кодер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Необходимо по клику на кнопку "Загрузить" загружать необходимый файл (файлы исключительно видео в .mp4)
Казалось бы тривиальная задача, но все нагугленные способы хорошо работают на всем, кроме iphone
Либо файл открывается просто на проигрывание, либо ничего не происходит

Как пробовал загружать файл:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
<?php

function isIphone($user_agent=NULL) {
    if(!isset($user_agent)) {
        $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
    }
    return (strpos($user_agent, 'iPhone') !== FALSE);
}

function download_file( $fullPath ){

    // Must be fresh start
    if( headers_sent() )
        die('Headers Sent');

    $fullPath = $_SERVER['DOCUMENT_ROOT'].$fullPath;


    // Required for some browsers
    if(ini_get('zlib.output_compression'))
        ini_set('zlib.output_compression', 'Off');

    // File Exists?
    if( file_exists($fullPath) ){

        // Parse Info / Get Extension
        $fsize = filesize($fullPath);
        $path_parts = pathinfo($fullPath);
        $ext = strtolower($path_parts["extension"]);

        // Determine Content Type
        if ($ext != "mp4")
            die('Allow only mp4 files!');


        if (isIphone()) {
            header("Pragma: public");
            header("Expires: 0");
            header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
            header("Cache-Control: private", false);
            header("Content-Type: video/mp4");
        }
        else {
            header("Pragma: public"); // required
            header("Expires: 0");
            header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
            header("Cache-Control: private",false); // required for certain browsers
            header("Content-Type: video/mp4");
            header("Content-Disposition: attachment; filename=\"".basename($fullPath)."\";" );
            header("Content-Transfer-Encoding: binary");
            header("Content-Length: ".$fsize);
        }


        ob_clean();
        flush();
        readfile( $fullPath );

    } else
        die('File Not Found');

}
?>
...
Рейтинг: 0 / 0
Как загрузить файл в Safari на iPhone
    #39266543
Фотография бухалтер фантоцци
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я так делаю для всех, конкретно на Safari не проверял

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0
header('Accept-Ranges: bytes');
header('Content-Disposition: attachment; filename='.$fileName);
header('Content-Type: application/zip; name="'.$fileName.'"'); // video/mp4
readfile($filePath);
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как загрузить файл в Safari на iPhone
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]