2017-01-09 3 views
0

Fiddle meiner HTML-Seite jsfiddleBild hochladen auf den Server von Android nativen Kamera via Javascript

Nun ist diese mit mir kann die native Kamera in einem Android-Gerät öffnen.

Aber ich kann das Bild nicht speichern und dann dieses Bild an den Server senden, damit ich es in meiner Datenbank speichern kann.

Was kann ich tun, nachdem ich das Bild aus der Gerätegalerie ausgewählt habe, um das Bild auf dem Server zu senden und zu speichern?

Eröffnung nativen Kamerafunktion verwendet:

function choosePhoto() { 
     var file = Android.choosePhoto(); 
     window.alert("file = " + file); 
    } 
+0

Fragen Sie, wie Sie ein ausgewähltes Bild an eine Datenbank senden können? Und welche Art von Datenbank ist das? – Bojje

Antwort

0

auf die damit verbundene Frage Bezug Sie gefragt, überprüfen meine Antwort https://stackoverflow.com/a/41570241/3518278

Meine Antwort beschreibt, wie die Kamera öffnen und das Bild aus dem Gerät holen und setze es in den html.

Wie dies in diesem Szenario von Ihnen hilft, ist, dass Sie js verwenden können/jQuery das Bild aus der Sicht < img> und machen Sie einen Ajax/HTTP-Anforderung holen es an den Server senden/setzen. In Ihrem Fall brauchen Sie keine < img> um das Bild zu setzen, können Sie die Daten in einer Variablen speichern und direkt auf den Server stellen ODER das Bild in eine versteckte < img> setzen und fortfahren.

So werden Sie unter Code verwenden zu holen und das Bild auf die html über JSInterface

    // Get the image data in a byte array 
        File imageFile = new File(imagePath); 
        Bitmap bitmap = Util.convertImageFileToBitmap(imageFile.getAbsolutePath(), Constants.IMAGE_COMPRESSED_WIDTH, Constants.IMAGE_COMPRESSED_HEIGHT); 
        ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
        bitmap.compress(Bitmap.CompressFormat.JPEG, 70, stream); 
        byte[] bytes = stream.toByteArray(); 

        // get the base 64 string of the image which was converted to a byte array above 
        final String imgBase64String = Base64.encodeToString(bytes, Base64.NO_WRAP); 

        runOnUiThread(new Runnable() { 
         @Override 
         public void run() { 
          mWebView.loadUrl("javascript:imageData('" + imgBase64String + "')"); 
         } 
        }); 

Ihre html

function imageData(data){ 
    document.getElementById('displayImage').setAttribute('src', 'data:image/png;base64,'+data);   
    } 

Beispielprojekt enthalten senden Sie den folgenden Code-Schnipsel für die Funktionen, die Sie anstreben hier finden Sie

https://drive.google.com/drive/folders/0BwRMp8dK9LMLeEo5cTlXVE9ZUW8?usp=sharing

Verwandte Themen