PHP: Скачать скрипт файла, не работающий на iPad

У меня есть сценарий загрузки файлов, который я написал, который читает файлы ниже public_html и позволяет пользователю загружать их после проверки, чтобы убедиться, что пользователь зарегистрирован и что файл является допустимым файлом для их загрузки.

Проблема, с которой я недавно столкнулся, заключается в том, что на iPad она просто ничего не делает, когда нажимается ссылка.

Пример кода файла загрузки после выполнения всех проверок:

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: application/msword"); header("Content-Disposition: attachment; filename=\"file.doc\";" ); header("Content-Length: 50688"); readfile(SITE_PATH .'/files/file.doc'); 

Этот скрипт был протестирован и проверен на компьютерах PC, Mac и Linux в нескольких браузерах (FF, Opera, IE6-9, Chrome, Safari), и все, похоже, работают нормально, поэтому это должно быть то, что iPad делает по-другому.

Я бы предположил, что это как-то связано с iPad, на самом деле не имеющим файловой структуры как таковой для загрузки файлов, но я не уверен.

Кто-нибудь сталкивался с этой проблемой раньше? Если да, есть ли исправление?

iOS Safari не поддерживает загрузку файлов ..

Обновление: Но если вы хотите открыть файлы .doc на iPad, тогда да … вы можете это сделать …

используйте следующее –

 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: application/msword"); readfile('file.doc'); 

единственная разница в вашем коде и моем – я удалил заголовок для вложения. Просто удалите этот заголовок –

 header("Content-Disposition: attachment; filename=\"file.doc\";" ); header("Content-Length: 50688"); 

Фактически вы можете проверить клиентскую операционную систему, если операционная система iOS, а затем не добавлять заголовок для загрузки, как это –

 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: application/msword"); if (!Operating_System_Is_IOS) { header("Content-Disposition: attachment; filename=\"file.doc\";" ); header("Content-Length: 50688"); } readfile(SITE_PATH .'/files/file.doc'); 

Apple заблокировала устройства iOS, так что вы не можете получить доступ к файловой структуре. Таким образом, они отключили загрузку файлов.

Вы можете заставить пользователя вставить ссылку (с идентификатором ограниченного времени в ней из-за входа …) в любое стороннее приложение, например, GoodReader. Или просто разрешите им просматривать файл doc в браузере.