Ich habe diese Frage selbst beantwortet, da ich lange gebraucht habe, um die Lösung dafür zu finden, und sie wurde nicht sehr gut dokumentiert.
Beim Versuch, FileTransfer () zu verwenden Lade Bilder von einer phonegap App auf Android auf einen Remote-Server hoch und erhalte einen Fehlercode 3 bei jedem alternativen Dateiupload.
Es funktionierte einmal, aber sofort, als ich es erneut versuchte, würde es einen Fehler werfen, ohne die Datei sogar an den Server zu senden.
Der Code, den ich für den Datei-Upload verwende, war:
Der Schlüssel dafür war, eine Header-Option hinzuzufügen.
%Vor%
Der vollständige Code:
Fehlercode 3 ist ein ziemlich breiter Fehler; Es bedeutet im Grunde, dass Ihr Server nicht korrekt codiert ist oder Sie keine Internetverbindung haben, und das führt zu einem Verbindungsfehler.
Könnte bedeuten:
upload_max_filesize
-Einstellung in php.ini anpassen, um dies auf ExpressJS zu beheben, müssen Sie das limit
-Feld für Multer usw. anpassen. Grundsätzlich erhöhen Sie die Dateigröße auf dem Server. Die meisten Server beschränken die Dateiuploadgrößen als Sicherheitsmaßnahme. ( Ссылка ) options.fileKey
-Wert (d. h. <input type="file" name="fileKey" />
) ist nicht der Name, den Ihr Server erwartet - eine Beispielfehlermeldung könnte ein "unerwartetes Feld" sein. content-type
im Header hat keinen Wert von multipart/form-data; boundary=----WebKitFormBoundary
. Durch die Protokollierung des Anfrage-Headers auf dem Server kann überprüft werden, ob der Inhaltstyp korrekt eingestellt ist. @AugieGardner - Auch damit einverstanden, dass das Cordova File Transfer Plugin für das Hochladen von Fotos, die mit dem Camera Plugin aufgenommen wurden, nicht gut dokumentiert ist.
Glücklicherweise habe ich ein funktionierendes Beispiel für iOS (und meine Vermutung ist auch Android):
cordova-Dateitransfer-Plugin funktioniert nicht im ios-Simulator
Eine einfachere Alternative (oder Fallback) wäre, das Bild als Base64 zu kodieren und es über eine einfache alte AJAX POST-Anfrage zu senden. Was beinhaltet die folgenden Vor- und Nachteile.
Nachteile von Base64-codierten Bildern, die über AJAX gesendet werden
Vorteile von Base64-codierten Bildern, die über AJAX gesendet werden
Tags und Links cordova phonegap-plugins