iOS 8 Beta 5 Загрузка нескольких фотографий в Safari

У нас есть мобильное веб-приложение, которое загружает некоторые фотографии с помощью тега ввода html следующим образом:

<input type='file' accept='image/* name='takeMult[]'/>.  

Это работало во всех предыдущих сборках iOS Safari (6.0 и выше). Кто-нибудь еще видел это с бета-версией? Мы оборачиваем его в виджет jquery, и это может быть проблемой, поскольку были отмечены проблемы с jquery mobile в бета-версии iOS 8, но я думал, что они были исправлены в самой последней бета-версии. Удаление его из виджета запроса также не удалось:

<input type='file' multiple='multiple'>

Это больше не позволяет выбирать несколько фотографий. Появляется диалоговое окно, и оно не позволяет вам выбирать изображения. Есть ли у кого-нибудь обходной путь или какие-либо изменения в мобильном сафари или вводе фотографий/файлов?

РЕДАКТИРОВАТЬ: я подтвердил эту проблему на нескольких устройствах и в бета-симуляторе iOS 8 на xCode 6. Я отправил отчет об ошибке в Apple по этой проблеме. Бета 6 была выпущена только для операторов связи, так что ничего не известно, исправлена ​​ли она в этой сборке. Тем не менее, хотелось бы услышать отзывы, если у кого-то есть обходной путь на случай, если Apple не решит проблему.


person Eric Hyde    schedule 26.08.2014    source источник
comment
Та же базовая проблема (файловая система iOS), разные сценарии.   -  person Eric Hyde    schedule 25.09.2014


Ответы (2)


Обходной путь — опустить атрибут multiple в элементе ввода файла. Конечно, это не позволит вам выбрать сразу несколько файлов, но это лучше, чем вообще не иметь возможности выбирать какие-либо файлы.

В iOS7 есть еще одна, более старая ошибка, также связанная с атрибутом multiple. В этом случае, когда этот атрибут установлен, запросы на загрузку видеофайлов будут пустыми (0-го размера). Не делайте ставку на то, что это будет исправлено до выхода iOS8.

person Ray Nicholus    schedule 28.08.2014
comment
Рэй: Самый распространенный способ, с которым я столкнулся для обработки загрузки одного файла, — это объект javascript Filereader(). Это также не работает на устройствах из-за того, как Apple меняет архитектуру своей файловой системы. Я знаю об ошибке видео, которую вы упомянули. Вы пытались использовать загрузку одной фотографии с объектом filereader() или без него? - person Eric Hyde; 29.08.2014
comment
FileReader не используется для загрузки файлов, только для чтения их содержимого на стороне клиента, в чем нет необходимости, если вы собираетесь только загрузить файл. Я подозреваю, что вы говорите о File API. Выбранные пользователем файлы становятся доступными как объекты File через свойство files входного файла. Это не изменится в iOS8. - person Ray Nicholus; 29.08.2014
comment
Да, извините, я не ясно выразился. При чтении одного файла с помощью File API в ios8 beta5 safari объект filereader возвращает, что файловые объекты недоступны для чтения. - person Eric Hyde; 29.08.2014
comment
Извините, я все еще не слежу. Похоже, вы смешиваете свои термины здесь. Вам придется продемонстрировать с реальным кодом. Помимо проблемы multiple, которую я описал в своем ответе, я не вижу других очевидных проблем в iOS8. - person Ray Nicholus; 29.08.2014
comment
Вы запускаете сборку бета-версии ios8 или просто предполагаете? Попытка загрузить один файл с помощью ‹input type=file›, а затем прочитать его с помощью filereader() в javascript завершится ошибкой из-за нечитаемого типа файла в бета-версии iOS 8 (не на симуляторе). - person Eric Hyde; 29.08.2014
comment
Перейдите на страницу html5Rocks в бета-версии iOS 8 и попробуйте их «Мониторинг хода пример чтения внизу страницы. Похоже, Apple либо изменила тип файла для фотографий, либо какая-то другая проблема. - person Eric Hyde; 29.08.2014
comment
Не тестировал FileReader, только тестировал загрузку файлов через File API. Просто есть симулятор на данный момент. - person Ray Nicholus; 29.08.2014
comment
Фантастическая находка! Я уверен, что это войдет в ios8. Спасибо! - person Eric Hyde; 29.08.2014
comment
Похоже, это не часть iOS8 GM - person Ray Nicholus; 11.09.2014
comment
Я заметил, что Рэй, но проблема с FileReader все еще есть. - person Eric Hyde; 12.09.2014
comment
обработка файлов в iOS8 GM полностью нарушена. Вполне вероятно, что Apple не исправит ошибку перед релизом. - person Ray Nicholus; 12.09.2014
comment
Подтвержденный файловый API не работает в версии выпуска iOS 8. - person Eric Hyde; 17.09.2014
comment
Ага. Вопрос в том, сколько времени потребуется Apple, чтобы это исправить? Или это когда-нибудь исправят? - person Ray Nicholus; 17.09.2014
comment
Я только что подтвердил, что изображение, прочитанное через файловый API, РАБОТАЕТ в веб-приложениях на домашнем экране, но не в мобильном сафари. - person Eric Hyde; 18.09.2014
comment
Да, проблема касается только Safari, а не конкретно UIWebView. blog.fineuploader.com /2014/09/10/ - person Ray Nicholus; 18.09.2014
comment
Удивительная ссылка снова Рэй. Я также отправил несколько отчетов об ошибках, и, надеюсь, мы увидим это с первым обновлением. Спасибо за вашу помощь! - person Eric Hyde; 18.09.2014

Обновление: вчера Apple выпустила iOS 8.0.2 и исправила ошибку загрузки.

Все загрузки файлов завершаются ошибкой на iOS 8.0 для одного или нескольких файлов. Все файлы, загруженные в Mobile Safari, возвращаются в размере 0 [1].

Надеюсь, Apple исправит это в следующем выпуске. Однако похоже, что это не влияет на веб-приложения на главном экране:

Загрузка файлов не работает!! Каждая загрузка файла не работает, вы можете выбрать файл или сделать снимок, и после этого JavaScript не получит никаких данных, а также сервер при загрузке POST через загрузку HTML или XMLHttpRequest. Проблема, похоже, не относится к веб-приложениям на главном экране.

Источник: http://www.mobilexweb.com/blog/safari-ios8-iphone6-web-developers-designers

[1] http://blog.fineuploader.com/2014/09/10/ios8-presents-serious-issues-that-prevent-file-uploading/

person owdco    schedule 18.09.2014
comment
Спасибо за подтверждение. Все это мы проработали за последние несколько недель. Однако ваш источник является довольно хорошим ресурсом для разработки мобильных веб-приложений. - person Eric Hyde; 18.09.2014
comment
@EricHyde Не беспокойтесь. Если вы еще не видели, Apple выпустила iOS 8.0.2, в которой исправлена ​​загрузка файлов в Mobile Safari! - person owdco; 26.09.2014
comment
Да! Спасибо еще раз! - person Eric Hyde; 29.09.2014