obiwan1973: HTML-Dateiupload in Firefox Android

Hallo zusammen,

Panik: Bin fix und foxy. Brauche dringend Hilfe.

Ich habe da eine Frage in Zusammenhang mit Firefox Android, dem HTML-File-Control und JavaScript.

Also, ich habe eine Webapplikation entwickelt, die von uns auf Android-Handys genutzt wird, und zwar mit Mozilla Firefox (aktuell: V. 23.0).

Die Anwendung ist ziemlich komplex, aber funktioniert wunderbar.

Bis auf eine Sache:

Auf einer Seite habe ich 4 ganz normale HTML-File-Controls für den Upload von Fotos (bspw. von der SD-Karte des Handys) oder um die Handykamera zu starten, die dann dem Browser die fertige Bilddatei zurückliefert.

Hier mein Code (Auszug):

  
  
<form id="form_detail" name="form_detail" onSubmit="return false" enctype="multipart/form-data">  
  
<input type="file" id="input_fileupload_01" name="input_fileupload_01" accept="image/*; capture=camera" onChange="funct_fileupload('input_fileupload_01')">				  
					  
<input type="file" id="input_fileupload_02" name="input_fileupload_02" accept="image/*; capture=camera"  
onChange="funct_fileupload('input_fileupload_02')">			  
					  
<input type="file" id="input_fileupload_03" name="input_fileupload_03" accept="image/*; capture=camera" onChange="funct_fileupload('input_fileupload_03')">				  
					  
<input type="file" id="input_fileupload_04" name="input_fileupload_04" accept="image/*; capture=camera"  
onChange="funct_fileupload('input_fileupload_04')">  
  
<input type="hidden" id="input_filetoupload" name="input_filetoupload">  
		  
</form>  
  

Das hier ist die Funktion, mit der ich die Seite zum Server schicke.

  
  
function funct_fileupload(var_control)  
{  
  alert(var_control);  
  //  
  document.getElementById('input_filetoupload').value = var_control + '';  
  //  
  document.getElementById('form_detail').method = 'post';  
  document.getElementById('form_detail').action = 'detail.php?mode=fileupload';  
  //  
  document.getElementById('form_detail').submit();  
}  
  

Mein Problem ist, dass der Upload nicht immer funktioniert und ich weiß nicht, wieso.

Ist es so richtig, wie ich es mache? Ich prüfe mit onChange, ob sich der Inhalt der File-Steuerelemente verändert hat (damit ich weiß, welches Control benutzt wurde) und dann starte ich den Upload?

Wichtig zu erwähnen: Das Problem MUSS client-seitig liegen ( !!! ), DENN IN DEN FÄLLEN, wo der Upload nicht funktioniert, wird die oben abgebildete JS-Funktion erst gar nicht ausgeführt (ich habe ja einen JS-alert eingefügt, um zu sehen, ob die JS-Funktion überhaupt ausgeführt wird).

Bedeutet, die Seite wird erst gar nicht zum Server geschickt. Heißt für mich, dass das mit dem onChange nicht in allen Fällen funktioniert. Sehe ich das richtig?

Oder macht die Handykamera was falsch? Könnte es sein, dass der "Connect" zwischen dem Browser und der Handykamera "verloren" geht? Meine aktuelle Statistik besagt: in 7 von 8 Fällen wird der JS-Code richtig ausgeführt und in einem Fall nicht.

Habt Ihr irgendwelche Tipps für mich? Ich weiß, das ist ziemlich komplex. Es ist ja auch so, dass auf dem PC die Anwendung zu 100% funktioniert, und zwar mit allen Browsern (naja, mit den wichtigsten 5, die anderen habe ich nicht getestet).

Was könnte die Fehlerursache sein?

Gruß

Thomas

  1. Hallo,

    ein wichtiger Nachtrag:

    Ich habe bei allen 4 HTML-File-Controls die onChange-Eigenschaft weggenommen.

    Es gibt also keinerlei Programmlogik mehr. Und trotzdem schmeißt mich Firefox raus (oder macht das die Kamera?).

    Gruß

    Thomas