Blob-Objekt in JavaScript base64

Ich versuche zu implementieren ist eine paste-handler, um ein Bild des Benutzers Zwischenablage. Ich will, dass das laufen nur auf Google Chrome, ich bin nicht besorgt, mit anderen Browsern.

Dies ist ein Teil einer Methode, die ich gefunden im Internet und ich bin versucht, Sie anzupassen.

//Get the items from the clipboard
var items = e.clipboardData.items;
    if (items) {
    //Loop through all items, looking for any kind of image
        for (var i = 0; i < items.length; i++) {
            if (items[i].type.indexOf("image") !== -1) {
                //We need to represent the image as a file,
                var blob = items[i].getAsFile();
                //and use a URL or webkitURL (whichever is available to the browser)
                //to create a temporary URL to the object
                var URLObj = window.URL || window.webkitURL;
                var source = URLObj.createObjectURL(blob);
                createImage(source);
                }
            }
        }

Die Methode funktioniert und ich kann das Bild wenn ich meine "Quelle", wie die src von einem Bild-Objekt. Das problem ist, dass die Bild-Quelle in google chrome wird so etwas wie dieses: blob:http://localhost:8080/d1328e65-ade2-45b3-a814-107cc2842ef9

Muss ich senden das Bild an den server, so möchte ich es konvertieren in eine base64-version. Zum Beispiel:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArgAAAAjCAIAAADwnO7RAAAKMWlDQ1BJQ0MgUHJvZmlsZQAASImdlndUU9kWh8+9N71QkhCKlNBraFICSA29SJEuKjEJEErAkAAiNkRUcERRkaYIMijggKNDkbEiioUBUbHrBBlE1HFwFBuWSWStGd+8ee/Nm98f935rn73P3Wfvfda6AJD8gwXCTFgJgAyhWBTh58WIjYtnYAcBDPAAA2wA4HCzs0IW+EYCmQJ82IxsmRP4F726DiD5+yrTP4zBAP+flLlZIjEAUJiM5/L42VwZF8k4PVecJbdPyZi2NE3OMErOIlmCMlaTc/IsW3z2mWUPOfMyhDwZy3PO4mXw5Nwn4405Er6MkWAZF+cI+LkyviZjg3RJhkDGb+SxGXxONgAoktwu5nNTZGwtY5IoMoIt43kA4EjJX/DSL1jMzxPLD8XOzFouEiSniBkmXFOGjZMTi+HPz03ni8XM...iCIBWnh+P9w9C+9eMzvhCl1iOElK09ruc2wqGhfH/uKEV30FlJkmRZJklydFuW/FdwhYFCkCBBggQJEuS/gWC4FCRIkCBBggQZlmCgECRIkCBBggQZlmCgECRIkCBBggQZFmzhwoXXWoYgQYIECRIkyHUK5vF4rrUMQYIECRIkSJDrFHLktYOCBAkSJEiQIP/NkLt3777WMgT5thLstwoSJEiQ7zxYsEUhyJWxbdu2u++++1pLESRIkCBBvl6Csx6CBAkSJEiQIMPy3dkMOsg3T7A5KkiQIEG+8wQDhSBXTjBQCBIkSJDvPMGuhyBBggQJEiTIsFwXLQr9H6bOjtYeP2mONbOj2Hut9y6/x+nlJSBCQnXkgG3Brh8Q4lqbOpAmPDqUGShex9lPDlfB4sU5I97b/8kuevygYUgYsAksAPg9fkbDQN/e1kNvVw76nfYeiTCG6sjLd5fv58rsFmxRCBIkSJDvPP8f+HtxbDVRPI8AAAAASUVORK5CYII=

In den ersten Teil des Codes habe ich ein blob-Objekt für die Datei. Ich habe versucht eine Reihe von Methoden, aber ich bin nicht immer die korrekte Darstellung. Wie kann ich es verwenden, um zu erstellen, die eine base64-Darstellung?

  • stackoverflow.com/questions/7650587/...
  • stackoverflow.com/questions/6431281/...
  • jcolebrand ich habe versucht, die base64-encode von der anderen Frage, aber ich bin immer diese Fehlermeldung: Exception: TypeError: Object #<Blob> hat keine Methode "ersetzen" Vielleicht wird der blob-Typ ist anders, so dass ich nicht denke, meine Frage ist, dupliziert.. weil die anderen Antworten konnten mir nicht helfen in diesem Fall. Oder vielleicht, im fehlt etwas...
  • Ich habe nicht gesagt, Sie dupliziert wurden, habe ich nur Links zu anderen Themen andere waren. Meist, um die Diskussion anzuregen. Auch, weil ich keine Ahnung.
  • Oh, ok. Vielen Dank für die Hilfe und Ihre Zeit, leider scheint es so, dass mein problem ist etwas anders als diejenigen, die Sie zeigten.
  • Sicher, ich wünschte, ich wusste, was Sie zu sagen.

InformationsquelleAutor Rafael | 2012-08-07
Schreibe einen Kommentar