4 месяца назад у меня была такая проблема. Когда я нажимаю на ссылку, я могу посетить каждую ссылку, но просто устройства Apple в Safari не работают. Я изменил свою HTML-структуру ссылок, и я исправил. Иногда некоторым устройствам / браузерам требуется событие touchend
.
Если вы живете проблемой, просто устройство / браузер. Может быть, эта ссылка может вам помочь: Проблема зависания iPad / iPhone заставляет пользователя дважды щелкнуть ссылку
С сожалением вынужден сказать, что, насколько мне известно, чистый индикатор выполнения загрузки PHP или даже индикатор выполнения загрузки PHP / Javascript невозможны из-за того, как работает PHP. Лучше всего использовать ту или иную форму загрузчика Flash.
AFAIK Это потому, что ваш сценарий не выполняется, пока не будут заполнены все суперглобальные переменные, включая $ _FILES. К тому времени, как ваш PHP-скрипт будет вызван, файл будет полностью загружен.
РЕДАКТИРОВАТЬ: Это больше не так. Это было в 2010 году.
Я только что нашел Mega Upload ( http://www.raditha.com/php/progress.php ), который использует Perl для загрузки и отображения индикатора выполнения.
Можно сделать индикатор выполнения php / ajax. (Оформить заказ на библиотеку Html_Ajax в грушах). Однако для этого требуется установка специального модуля в php.
Другие методы требуют использования iframe, через который php проверяет, какая часть файла была загружена. Однако этот скрытый iframe может быть заблокирован некоторыми надстройками браузера, потому что скрытые iframe часто используются для отправки вредоносных данных на компьютер пользователя.
Лучше всего использовать какую-либо форму индикатора выполнения flash, если вы не контролируете свой сервер.
Вам нужно будет использовать Javascript для создания индикатора выполнения. Простой поиск в Google привел меня к этой статье: WebAppers Simple Javascript Progress Bar с CSS .
Виджет Dojo File Download Progress Bar Widget - еще один вариант, использующий структуру Dojo Javascript.
EDIT: Предполагая, что вы загружаете большое количество изображений (например, фотоальбом) и размещаете их в своем PHP-скрипте, вы можете использовать javascript для чтения результатов из публикации и обновления индикатора выполнения на основе количества загруженных изображений / всего количество изображений. Это имеет побочный эффект: обновление происходит только после завершения каждой публикации. Посетите здесь , чтобы узнать, как отправлять сообщения с помощью JS.
Если у вас установлено APC , он имеет крючок обратного вызова для загрузки прогресса.
Расмус Лердорф (создатель PHP) имеет образец этого с использованием YUI (OH и вот источник PHP ).
См. Документация здесь .
загрузка флэш-памяти сделает работу. он загрузит файл туда, куда вы хотите. Но ко мне предъявляются дополнительные требования. мне нужно изменить имя файла до завершения загрузки. это также возможно с флэш-решением, НО ТОЛЬКО если вы добавляете ФИКСИРОВАННУЮ переменную. Мне нужно добавить идентификатор пользователя к имени файла, и я не вижу способа сделать это.
Gears и HTML5 достигли прогресса в объекте HttpRequest
для отправки загрузки файла через AJAX.
http://developer.mozilla.org/en/Using_files_from_web_applications
Другие ваши варианты, как уже ответили другие:
Технически существует четвертый вариант, аналогичный загрузке на YouTube, с помощью Gears или HTML5 вы можете использовать капли, чтобы разбить файл на небольшие фрагменты и отдельно загрузить каждый фрагмент. По завершении каждого фрагмента вы можете обновить статус выполнения.
Другой загрузчик, полный JS: http://developers.sirika.com/mfu/
получайте удовольствие