Herunterladen und Hochladen von Dateien über Safari iOS

Mir ist bewusst, dass das iPad kein Dateisystem im herkömmlichen Sinne hat.

Ich möchte wissen, wie sich Safari für iOS verhält, wenn ich versuche, Dateien von/auf eine Website herunterzuladen/hochzuladen.

Angenommen, ich gehe zu sourceforge.net und klicke auf einen Link, um die ZIP-Datei herunterzuladen? Würde Safari es herunterladen? Wenn ja, wo wird es gespeichert und wie greife ich darauf zu (ohne iTunes zu verwenden, um es zuerst auf einen PC zu verschieben).

Erlaubt Safari unter iOS das Herunterladen nur einiger Dateien und lehnt andere ab, oder erlaubt es das Herunterladen aller oder lehnt alle ab?

Wenn eine Webseite eine Datei-Upload-Steuerung hat (input type="file"), wie verhält sich Safari (würde es das Hochladen zulassen, das Hochladen nur auf einigen Websites zulassen oder die Download-Steuerung funktioniert überhaupt nicht)?

Bitte beachten Sie, dass sich diese Frage auf das Verhalten von iOS 5 und davor bezieht. Jetzt beginnt iOS 6 damit, die Möglichkeit zum Hochladen von Bildern in Textfelder zu erweitern, sodass diese Antwort mit der Zeit möglicherweise nur als Dokumentation darüber dient, wie die Dinge waren und nicht, wie sie bei oder nach iOS 6.0 sind.

Antworten (2)

Tatsächlich hat das iOS ein Dateisystem, und jede App erhält Zugriff auf einen Sandbox-Teil des Dateisystems.

Das iOS-„System“ selbst verfügt über mehrere Programme, die direkt auf das Dateisystem zugreifen, aber Mobile Safari verhält sich eher wie eine eingeschränkte App, die bei iTunes gekauft wurde, als beispielsweise Springboard oder die App Store-App selbst.

Uploads sind unter iOS grundsätzlich nicht möglich. Mobile Safari liest nicht aus dem Adressbuch (was die meisten Sandbox-Apps standardmäßig können und tun). Es verwendet auch nicht die Fotoauswahl, um Bilder oder Videos hochzuladen.

Downloads sind möglich, erfordern jedoch häufig eine Hilfs-App, um den Download zu speichern und zu verwenden. Safari verarbeitet mp3, Streams und andere Medien selbst und lässt Sie den "Download" anhören oder ansehen. Sie können es nicht so speichern, wie es ein Computer zulässt, aber der Webserver glaubt, dass ein Download stattgefunden hat, und Safari lädt die Datei tatsächlich in seinen Cache herunter (wo sie bleibt, bis der Cache voll ist und sie veraltet und gelöscht wird). Alle anderen Dateitypen werden behandelt, da das iOS UTI-Dateidetektoren verwendet, um zu sehen, welche installierten Apps einen potenziellen Download verarbeiten können. (Das Entwicklerdokument, das ich verlinkt habe, hat mehrere Absätze, die von jedem gelesen werden können, aber es taucht sehr schnell in die Details der Entwickler ein, also zögern Sie nicht, diesen Link zu verlassen, bevor die einfache Idee hinter UTI verwirrt wird.)

Wenn Safari erkennt, dass sich eine andere App für einen Download registriert hat, sehen Sie ein „In Apptastic öffnen“, um anzuzeigen, dass Mobile Safari diese Datei herunterlädt, sie aber an eine andere App weiterleitet, um sie in der Sandbox dieser App zu speichern.

Safari verwendet einen System-API-Aufruf, damit das iOS Sandbox-übergreifend schreiben kann.


Da Sie nach einer Zip-Datei gefragt haben, brauchen Sie auf Ihrem iPad nur eine App zu finden, die iOS mitteilt, dass es mit Zip-Dateien umgehen kann, und solange die Sourceforge-Server genügend Daten für Mobile Safari senden, um eine Zip-Datei zu erkennen, können Sie sie herunterladen es an Ihre App. Die Rückwärtsfahrt ist schwieriger, Ihre ZIP-App kann eine Datei nicht wirklich zum Hochladen auf Safari verschieben. Ihre App muss so programmiert werden, dass sie sich direkt bei Sourceforge anmeldet und die Upload-API selbst aufruft. (was technisch gesehen wahrscheinlich den mobilen Safari-Code / das Webkit verwenden wird, um einen HTTP-Upload durchzuführen - aber das passiert alles hinter den Kulissen, nicht in dem, was wir als mobile Safari mit dem blauen Kompasssymbol sehen und steuern)

Mobile Safari selbst kann keine Dateien für Sie speichern (ohne Jailbreak). Einige Apps wie Dropbox registrieren sich jedoch bei Safari und ermöglichen eingeschränkte Unterstützung für einige Dateitypen.

Dateieingaben sind in Mobile Safari nur deaktiviert/ausgegraut.

+1 wollte gerade genau die gleiche Antwort geben, aber Sie haben vor mir auf Senden geklickt. Evernote ist eine weitere App, die sich für solche Downloads registriert.
Bitte fügen Sie eine Referenz hinzu oder entfernen Sie bitte die Zeile zum Jailbreak. Meines Wissens kann das Verhalten von Mobile Safari nicht geändert werden, um das direkte Herunterladen oder Hochladen einer Datei zu ermöglichen.
Zumindest in der Vergangenheit gab es Plugins für Mobile Safari auf iPhones mit Jailbreak, um Downloads zu ermöglichen. Ich spreche nicht aus Erfahrung, aber ich denke, es ist erwähnenswert, und Google liefert ziemlich viele, wenn auch möglicherweise veraltete Ergebnisse.
+1. Dropbox ist eine große Hilfe für Dateien, die Safari sonst nicht unterstützt. Und indem Sie Dateien in Ihrem öffentlichen Dropbox-Verzeichnis speichern, können Sie Links zu ihnen erhalten, was in einigen Fällen nützlich sein kann, auch wenn es sich nicht um einen direkten Upload handelt.