heinetz: input[type="file"] und mobile devices

Beitrag lesen

Hallo Forum,

ich baue gerade eine responsive HTML5-Website mit bootstrap. Auf der Seite gibt es einen Bereich, in dem der User Dateien hochladen kann … ich nenne es Upload-Widget ;)

Nun gibt es zwei Restriktionen:

  1. Die Dateien müssen PDFs sein.
  2. Die PDFs dürfen nicht grösser sein als 120MB

Um diese Restriktionen zu überprüfen gibt es natürlich zum Einen eine serverseitige Überprüfung. Zum Anderen eine clientseitige. Voraussetzung für diese clientseitige Überprüfung ist die JS File API. Steht die im Client nicht zur Verfügung wird mein Upload-Wigdet nicht angezeigt. Für diese Überprüfung benutze ich modernizr.

Nun funktionieren ja heute auf mobile Devices input[type="file"] auch. Auf meinem iPhone wird mir ein Dialog angezeigt, in dem ich wählen kann, ob ich ein Foto aufnehmen oder aus meinem Fotoalbum auswählen möchte. Das ist aber natürlich etwas grundsätzlich anderes, als eine Datei von meinem lokalen Laufwerk auszuwählen. Meines Wissens nach ist das nicht nur bei meinem iPhone, sondern grundsätzlich bei mobilen OS so.

Erste Frage: Stimmt das oder gibt es da Ausnahmen?

Für dem (mobilen) User, der nur Fotos hochladen kann, möchte ich mein Widget auch gernre ausblenden. Die Frage ist nur, wie erkenne ich das möglichst zuverlässig. Ich kann natürlich auch hier modernizr einsetzen und den Client auch touchevents überprüfen. Das ist sicher nah dran. Das liesse sich auch noch mit einer mobile-device-detection, die auf UA-Strings basiert kombinieren. Aber bei diesen Ansätzen geht es nur um Wahrscheinlichkeiten.

Hat jemand einen anderen Ansatz?

1000 Dank für Tipps und

beste gruesse, heinetz