Принудительная загрузка через Iframe на мобильный - PullRequest
1 голос
/ 12 марта 2012

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

По определенным причинам я не могу использовать php на «главных» страницах, поэтому я сделал это через jQuery $.get

Работает нормально, кроме случаев, когда дело доходит до загрузки, я использовал 1x1 iframe, чтобы начать загрузку, которая работает нормально .. кроме как на iphone + galaxy s2 (только 2 я тестировал на atm)

мой код на странице, вызываемой iframe:

<?

$email = mysql_escape_string($_GET['email']);
$code = mysql_escape_string($_GET['code']);

include('xxxxx.php');
mysql_select_db($xxxxx);
$now = strtotime(date('c'));

$sql = mysql_query("SELECT * FROM `xxxxx` WHERE `email` = '$email' AND `code` = '$code'");
if(mysql_num_rows($sql) == 0) { echo "<script>alert('Incorrect Code');</script>"; die; }
$query = mysql_fetch_object($sql);
if(strtotime($query->expires) > $now) {

    $filename = "theused.wav";

    header('Content-type: audio/x-wav');
    header('Content-Disposition: attachment; filename="' . basename($filename) . '"');
    header('Content-Transfer-Encoding: binary');
    readfile('http://www.something.co.uk/xxx/' . $filename);
} else {
    echo "<script>alert('Code Expired');</script>"; die;
}
?>

Загрузка работает нормально при прямом доступе к этой странице, но не при ее открытии в iFrame

Становится еще более странным ... просто попытался вместо этого сделать window.location, при подключении к wifi происходит сбой и он говорит, что загрузка не удалась, на 3g, кажется, работает нормально.

1 Ответ

0 голосов
/ 12 марта 2012

Возможно, вы могли бы сначала попытаться проверить, если (file_exists ($ path_to_file))), чтобы убедиться, что ваш абсолютный путь соответствует вашим ожиданиям.Если все это работает, это также означает, что он может найти файл, но заголовки, похоже, не работают для мобильных телефонов.Это может указывать на то, что он не позволяет устанавливать эти заголовки в мобильных браузерах.

В этом случае вам, возможно, придется искать другой подход.

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