1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. camp-firefox.de
  2. Fuchs01

Beiträge von Fuchs01

  • Google Docs Upload problem

    • Fuchs01
    • 2. November 2009 um 16:06

    Hallo,

    ich bräuchte da mal eure Hilfe für eine Firefox Erweiterung. Ich will verschiedene Dateitypen an Google Docs schicken.

    Bisher schaut mein Code so aus:

    Code
    var GoogleDocs = {
    
    
        onLoad: function() {
    
           document.getElementById("contentAreaContextMenu")
           .addEventListener("popupshowing", function(event) { GoogleDocs.onPopupShowing(event); }, false);
    
    
        },
    
    
        onPopupShowing: function(event) {
    
    
           document.getElementById("context-Google-Docs")
           .hidden = document.getElementById("context-openlinkintab").getAttribute("hidden");
       },
    
    
     };
    
    
        function execute(event) {
    
    
         if(!gContextMenu.onLink)return;
    
    
         var url = gContextMenu.getLinkURL();
    
    
         // retrieve the url from a google link
         var googleURL = /^http:\/\/[a-z]+\.google\.[a-z]+\/url\?.*[\\?&]url=([^&#]+)/i;
    
    
         // special case for yahoo search results
         var yahooURL = /^http:\/\/[a-z]+\.yahoo\.[a-z]+\/.*\/\*\*([^&#]+)/i;
    
    
    	   if(url.match(googleURL) || url.match(yahooURL)) { 
    
        		url = decodeURIComponent(RegExp.$1); 
    	   }
            getToken(url)
            //openDoc(url); 
      }
    
    
         function openDoc(aURI) {
    
    
        var uploadURL = googleDocsURL + encodeURIComponent(aURI);
    
    
        var prefManager = Components.classes["@mozilla.org/preferences-service;1"]
                                 .getService(Components.interfaces.nsIPrefBranch);
    
    
        var prefvalue = prefManager.getCharPref("sendtogoogledocs.whereToOpenUrl"); 
    
    
        switch(prefvalue) {
    
    
    	   	case "openNewTab":
    				gBrowser.addTab(uploadURL);
    				break;
    
    			case "selectedNewTab":
    				gBrowser.selectedTab = gBrowser.addTab(uploadURL);
    				break;
    
    			case "openNewWindow":
    				window.open(uploadURL);
    				break;
    
    
          case "openSameTab":
    				gBrowser.loadURI(uploadURL);
    				break;
    		 }	
       }      
    
    
        function getToken(aURL) {
    
      var xhr = new XMLHttpRequest();
    
    
      var email = ""; //zum testen
    
    
      var password = ""; //zum testen
    
    
      xhr.open("POST", "https://www.google.com/accounts/ClientLogin?accountType=HOSTED_OR_GOOGLE&Email="+email+"&Passwd="+password+"&service=writely&source=GoogleDocs", true);
    
    
      xhr.onreadystatechange = function(aEvent) {
    
    
        if(xhr.readyState == 4) {
    
    
          if(xhr.status == 200) {
    
    
        var a = xhr.responseText.replace(/\n/g, "");
    
    
        _AUTH = a.substr(a.indexOf("Auth=") + 5);
    
    
        sendDoc(_AUTH, aURL);
    
    
           } else { 
       alert(xhr.statusText)
        }
      }
     }
      xhr.send(null);
    
    
    }
    
    
           // var pattern = /<input type="hidden" name="security_token" value="([^"]+)">/;
    
    
         //   var matches = xhr.responseText.match(pattern);
    
    
           // if(matches != null) { // retrieved security token successfully
    
    
             // sendDoc(matches[1], aURL);
    
    
         //   } else { // failed to retrieve security token - not logged in?
    
    
             // showAlert("Login Error", "Please login first!"); 
    
    
           //   gBrowser.selectedTab = gBrowser.addTab("https://docs.google.com");
          //    return;
          //  }
         // } else { // server error
    
    
          //  showAlert("Error", "Error getting token!"); 
          //  return;
    
    
       
        function sendDoc(aToken, aURL) { // http://code.google.com/intl/en/apis/desktop/articles/e9.html
    
    
      var xhr = new XMLHttpRequest();
    
    
      xhr.open("POST", "http://docs.google.com/feeds/documents/private/full");
    
    
      //document.getElementById("upload_txt").style.display = "";
        //    document.getElementById("upload_txt").value = "Uploading: " + data.name;
    
    
    
    
    		const BOUNDARY = "END_OF_PART";
            const MULTI = "@mozilla.org/io/multiplex-input-stream;1";
            const FINPUT = "@mozilla.org/network/file-input-stream;1";
            const STRINGIS = "@mozilla.org/io/string-input-stream;1";
            const BUFFERED = "@mozilla.org/network/buffered-input-stream;1";
            const nsIMultiplexInputStream = Components.interfaces.nsIMultiplexInputStream;
            const nsIFileInputStream = Components.interfaces.nsIFileInputStream;
            const nsIStringInputStream = Components.interfaces.nsIStringInputStream;
            const nsIBufferedInputStream = Components.interfaces.nsIBufferedInputStream;
    
    
    	/*	this._uploadHistory.push({
                "file": data.name,
                "status": false,
                "error": ""
            });*/
    
    		//console.log(data.data);
    		var buf = Components.classes[STRINGIS].createInstance(nsIStringInputStream);
            buf.setData(aURL, aURL.length); //<-- hier ist der fehler
    
    
          //  buf = buf.replace(/>.*<\/a>/gi,">");
    		//console.log(data.data.value.toString().length);
    		//alert(data.data.value)
    		//<a href="http://www.pgts.com.au/download/txt/wav.txt">wav.txt</a>
    		var mis = Components.classes[MULTI].createInstance(nsIMultiplexInputStream);
            //var fin = Components.classes[FINPUT].createInstance(nsIFileInputStream);
            //fin.init(file, 1, 292, null);
            //var buf = Components.classes[BUFFERED].createInstance(nsIBufferedInputStream);
            //buf.init(fin, (file.fileSize - 1));
            var mime_1 = Components.classes[STRINGIS].createInstance(nsIStringInputStream);
            var mime_1_string = new String();
            mime_1_string += "\r\n";
            mime_1_string += "Media multipart posting\r\n";
            mime_1_string += "\r\n--" + BOUNDARY + "\r\n";
            mime_1_string += "Content-Type: application/atom+xml\r\n";
            mime_1_string += "\r\n";
            mime_1_string += '<?xml version=\'1.0\' encoding=\'UTF-8\'?><atom:entry xmlns:atom="http://www.w3.org/2005/Atom"><atom:category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/docs/2007#spreadsheet" /><atom:title>' + "NewDoc" + "</atom:title></atom:entry>\r\n";
            mime_1_string += "\r\n--" + BOUNDARY + "\r\n";
            mime_1_string += "Content-Type: text/html\r\n\r\n";
            mime_1.setData(mime_1_string, mime_1_string.length);
            var hsis = Components.classes[STRINGIS].createInstance(nsIStringInputStream);
            var sheader = new String();
            sheader += "\r\n";
            sheader += "--" + BOUNDARY + '\r\nContent-disposition: form-data;name="addfile"\r\n\r\n1';
            sheader += "\r\n--" + BOUNDARY + "\r\n";
            sheader += 'Content-disposition: form-data;name="filename";filename="' + "NewDoc" + '"\r\n';
            sheader += "Content-Type: application/octet-stream\r\n";
            //sheader += "Content-Length: " + data._size + "\r\n\r\n";
            hsis.setData(sheader, sheader.length);
            var endsis = Components.classes[STRINGIS].createInstance(nsIStringInputStream);
            var bs = new String("\r\n--" + BOUNDARY + "--\r\n");
            endsis.setData(bs, bs.length);
            mis.appendStream(mime_1);
            mis.appendStream(buf);
            mis.appendStream(endsis);
         //   console.log(mis);
    
    
         /*   YAHOO.util.Connect.resetDefaultHeaders();
            YAHOO.util.Connect.initHeader("Authorization", "GoogleLogin auth=" + this._AUTH);
            YAHOO.util.Connect.initHeader("Content-Length", mis.available() - 2);
            YAHOO.util.Connect.setDefaultPostHeader("multipart/related; boundary=" + BOUNDARY);
            YAHOO.util.Connect.initHeader("Slug", data.name);
            YAHOO.util.Connect.initHeader("MIME-version", "1.0");
            YAHOO.util.Connect.initHeader("Cookie", "", false);
            this._uploadConnection = YAHOO.util.Connect.asyncRequest("POST", "http://docs.google.com/feeds/documents/private/full", {
                success: this.uploadSuccess,
                failure: this.uploadFail,
                scope: this
            },
            mis); */
    
    
     // var boundaryString = "-gd-upload---";
     // var boundary = "--" + boundaryString;
     // var postData = ["", boundary, "Content-Disposition: form-data; name=\"security_token\"", "", aToken,
       // boundary, "Content-Disposition: form-data; name=\"formsubmitted\"", "", "true", boundary,
        //"Content-Disposition: form-data; name=\"uploadURL\"", "", aURL, boundary + "--"].join("\r\n");
      xhr.setRequestHeader("Content-Type","multipart/related; boundary="+BOUNDARY);
    //xhr.setRequestHeader("Content-Type","application/msword");
    xhr.setRequestHeader("MIME-version", "1.0");
    xhr.setRequestHeader("Authorization", "GoogleLogin auth=" + aToken);
     // xhr.setRequestHeader("Content-length", postData.length);
    
    
    
    
      xhr.onreadystatechange = function(aEvent) {
    
    
        if(xhr.readyState == 4 && xhr.status == 200) {
    
    
          // openDoc(xhr.channel.URI.spec);
         }
       }
       xhr.send(mis);
     } 
    
    
     /*  function showAlert(title, message) {
    
    
    	  	var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] 
                             .getService(Components.interfaces.nsIPromptService);
    
    
    	  	promptService.alert(window, title, message);
    	} */
    
    
    window.addEventListener("load", function(event) { GoogleDocs.onLoad(event); }, false);
    Alles anzeigen

    Das Problem: Die Datei z.b. http://www.eltviller.de/skripte/edv/b/script/ikb-98tj.doc wird nicht korrekt hoch geladen, das heißt es wird nur ein Link erstellt (siehe Bild).

    http://www.pics-load.net/?v=images/bdSQMIh8bGo.png

    Den Code habe ich von der gDocsBar genommen. Ich habe zwar den Fehler gefunden aber das nützt mir nichts. Hier ist der Fehler:

    Code
    var buf = Components.classes[STRINGIS].createInstance(nsIStringInputStream);
            buf.setData(aURL, aURL.length); //<-- hier ist der fehler

    Wie muss die postData aussehen damit die Datei korrekt zu Google Docs hochgeladen wird?

    Ich habe auch schon auf dieser Seite gesucht habe aber nichts gefunden.

    Es wäre nett wenn mir jemand helfen könnte!

    PS: Mein Add-on

  • postData problem

    • Fuchs01
    • 2. November 2009 um 14:53
    Zitat von boardraider


    Fuchs01
    In der Form macht ein Thread überhaupt keinen Sinn. Ich ging davon aus du möchtest in breiterem Umfang um Unterstützung bitten. Daher wäre es zielführender für nicht an der Konversation beteiligte Leser alles nochmals entsprechend verständlich und ausführlich darzulegen. Um nur mir zu antworten hätte eine PN weiterhin vollkommen ausgereicht.

    Ich habe dir doch eine Nachricht geschrieben und gefragt ob ich einen neuen Thread aufmachen soll oder?

    Du hast gesagt , Ja!

    Zitat

    Es wurde einfach unreflektiert aus einer PN von mir zitiert und darauf geantwortet!

    Das war mein Fehler! Ich hätte gleich von Anfang an auf den Thread Verweisen sollen.

  • postData problem

    • Fuchs01
    • 2. November 2009 um 14:38
    Zitat von Boersenfeger

    Was ist dein Problem? Oder hast du statt zu antworten einen neuen Beitrag erstellt?

    Ich warte auf boardraider.

  • postData problem

    • Fuchs01
    • 2. November 2009 um 14:19
    Zitat

    Zitat von boardraider:
    Funktioniert sie überhaupt noch?


    Ja, die Erweiterung funktioniert noch. Den Code habe ich von der Google Toolbar genommen. Hast du das Add-on schon getestet? Sollte Google die Toolbar nicht mehr brauchen dann wird der Code wahrscheinlich nicht mehr funktionieren. Hier ist der Code:

    Code
    const googleDocsURL = "http://docs.google.com/?formsubmitted=true&action=updoc&uploadURL=";
    
    
    var GoogleDocs = {
    
    
        onLoad: function() {
    
           document.getElementById("contentAreaContextMenu")
           .addEventListener("popupshowing", function(event) { GoogleDocs.onPopupShowing(event); }, false);
    
    
           this.register();
        },
    
    
        onPopupShowing: function(event) {
    
    
           document.getElementById("context-Google-Docs")
           .hidden = document.getElementById("context-openlinkintab").getAttribute("hidden");
       },
    
    
        observerService: function() {
    
    
          return Components.classes["@mozilla.org/observer-service;1"]
                 .getService(Components.interfaces.nsIObserverService);
      },
    
    
        unregister: function() {
    
    
          this.observerService().removeObserver(this, "http-on-modify-request");
      },
    
        register: function() {
    
    
        	this.observerService().addObserver(this, "http-on-modify-request", false);
       },
    
    
        observe: function(subject, topic, state) {
    
    
          if(topic == "http-on-modify-request") {
    
    
              var httpChannel = subject.QueryInterface(Components.interfaces.nsIHttpChannel);
              var originalUserAgent = httpChannel.getRequestHeader("user-agent");
              var GoogleDocsUserAgent = " GoogleToolbarFF";
              var currentURL = httpChannel.URI.spec;
    
              if(currentURL.indexOf(googleDocsURL) != -1 && originalUserAgent.indexOf(GoogleDocsUserAgent) == -1) {
                  httpChannel.setRequestHeader("user-agent", originalUserAgent + GoogleDocsUserAgent, false);
              }
           }
        },
     };
    
    
        function execute(event) {
    
    
         if(!gContextMenu.onLink)return;
    
    
         var url = gContextMenu.getLinkURL();
    
    
         // retrieve the url from a google link
         var googleURL = /^http:\/\/[a-z]+\.google\.[a-z]+\/url\?.*[\\?&]url=([^&#]+)/i;
    
    
         // special case for yahoo search results
         var yahooURL = /^http:\/\/[a-z]+\.yahoo\.[a-z]+\/.*\/\*\*([^&#]+)/i;
    
    
    	   if(url.match(googleURL) || url.match(yahooURL)) { 
    
        		url = decodeURIComponent(RegExp.$1); 
    	   }
            openDoc(url); 
      }
    
    
         function openDoc(aURI) {
    
    
        var uploadURL = googleDocsURL + encodeURIComponent(aURI);
    
    
        var prefManager = Components.classes["@mozilla.org/preferences-service;1"]
                                 .getService(Components.interfaces.nsIPrefBranch);
    
    
        var prefvalue = prefManager.getCharPref("sendtogoogledocs.whereToOpenUrl"); 
    
    
        switch(prefvalue) {
    
    
    	   	case "openNewTab":
    				gBrowser.addTab(uploadURL);
    				break;
    
    			case "selectedNewTab":
    				gBrowser.selectedTab = gBrowser.addTab(uploadURL);
    				break;
    
    			case "openNewWindow":
    				window.open(uploadURL);
    				break;
    
    
          case "openSameTab":
    				gBrowser.loadURI(uploadURL);
    				break;
    		 }	
       }      
    
    
    window.addEventListener("load", function(event) { GoogleDocs.onLoad(event); }, false);  
    window.addEventListener("unload", function(event) { GoogleDocs.unregister(event); }, false);
    Alles anzeigen
    Zitat

    Zitat von boardraider:
    Ohne deinen Code geprüft zu haben, wenn du den Fehler schon gefunden hast, was genau stimmt den an der Stelle nicht? Fehlermeldung?

    Die Datei z.B: http://www.eltviller.de/skripte/edv/b/script/ikb-98tj.doc wird nicht korrekt hoch geladen, das heißt es wird nur ein Link erstellt (siehe Bild).

    http://www.pics-load.net/?v=images/bdSQMIh8bGo.png

    Fehlermeldung gibt es keine. Den Code habe ich von der gDocsBar genommen. Ich habe zwar den Fehler gefunden aber das nützt mir nichts.

    Code
    var buf = Components.classes["@mozilla.org/io/string-input-stream;1"].createInstance(Components.interfaces.nsIStringInputStream);
            buf.setData(aURL, aURL.length);
    Zitat

    Zitat von boardraider:
    Ohne konkreten Code-Bezug: Google Docs erlaubt afaik gegenwärtig keinen Upload via URL mehr. Wenn man also Dokumente aus dem Web in Google Docs importieren will, müsste man diese zunächst selbst lokal downloaden und anschließend wieder an Google Docs schicken.

    Die gDocsBar nutzt zum Uploaden die Google Docs API http://code.google.com/intl/de-DE/api…e_protocol.html. Wie muss die postData aussehen damit das Dokument korrekt zu Google Docs hochgeladen wird?

    Es gibt zwar auch schon ein neues Add-on das auch Dokumente zu Google Docs hochladen kann(das Add-on nutzt auch die Google Docs API, das funktioniert aber nicht 100-prozentig), aber an den eigentlichen Code komme ich nicht ran (siehe Bild): Google Docs Anywhere

    http://www.pics-load.net/?v=images/xHe6wffTjXh.png

    Hier ist noch der Code der nicht funktioniert:

    Code
    var GoogleDocs = {
    
    
        onLoad: function() {
    
           document.getElementById("contentAreaContextMenu")
           .addEventListener("popupshowing", function(event) { GoogleDocs.onPopupShowing(event); }, false);
    
    
        },
    
    
        onPopupShowing: function(event) {
    
    
           document.getElementById("context-Google-Docs")
           .hidden = document.getElementById("context-openlinkintab").getAttribute("hidden");
       },
    
    
     };
    
    
        function execute(event) {
    
    
         if(!gContextMenu.onLink)return;
    
    
         var url = gContextMenu.getLinkURL();
    
    
         // retrieve the url from a google link
         var googleURL = /^http:\/\/[a-z]+\.google\.[a-z]+\/url\?.*[\\?&]url=([^&#]+)/i;
    
    
         // special case for yahoo search results
         var yahooURL = /^http:\/\/[a-z]+\.yahoo\.[a-z]+\/.*\/\*\*([^&#]+)/i;
    
    
    	   if(url.match(googleURL) || url.match(yahooURL)) { 
    
        		url = decodeURIComponent(RegExp.$1); 
    	   }
            getToken(url)
            //openDoc(url); 
      }
    
    
         function openDoc(aURI) {
    
    
        var uploadURL = googleDocsURL + encodeURIComponent(aURI);
    
    
        var prefManager = Components.classes["@mozilla.org/preferences-service;1"]
                                 .getService(Components.interfaces.nsIPrefBranch);
    
    
        var prefvalue = prefManager.getCharPref("sendtogoogledocs.whereToOpenUrl"); 
    
    
        switch(prefvalue) {
    
    
    	   	case "openNewTab":
    				gBrowser.addTab(uploadURL);
    				break;
    
    			case "selectedNewTab":
    				gBrowser.selectedTab = gBrowser.addTab(uploadURL);
    				break;
    
    			case "openNewWindow":
    				window.open(uploadURL);
    				break;
    
    
          case "openSameTab":
    				gBrowser.loadURI(uploadURL);
    				break;
    		 }	
       }      
    
    
        function getToken(aURL) {
    
      var xhr = new XMLHttpRequest();
    
    
      var email = ""; // deine email
    
    
      var password = ""; // dein passwort
    
    
      xhr.open("POST", "https://www.google.com/accounts/ClientLogin?accountType=HOSTED_OR_GOOGLE&Email="+email+"&Passwd="+password+"&service=writely&source=GoogleDocs", true);
    
    
      xhr.onreadystatechange = function(aEvent) {
    
    
        if(xhr.readyState == 4) {
    
    
          if(xhr.status == 200) {
    
    
        var a = xhr.responseText.replace(/\n/g, "");
    
    
        _AUTH = a.substr(a.indexOf("Auth=") + 5);
    
    
        sendDoc(_AUTH, aURL);
    
    
           } else { 
       alert(xhr.statusText)
        }
      }
     }
      xhr.send(null);
    
    
    }
    
    
           // var pattern = /<input type="hidden" name="security_token" value="([^"]+)">/;
    
    
         //   var matches = xhr.responseText.match(pattern);
    
    
           // if(matches != null) { // retrieved security token successfully
    
    
             // sendDoc(matches[1], aURL);
    
    
         //   } else { // failed to retrieve security token - not logged in?
    
    
             // showAlert("Login Error", "Please login first!"); 
    
    
           //   gBrowser.selectedTab = gBrowser.addTab("https://docs.google.com");
          //    return;
          //  }
         // } else { // server error
    
    
          //  showAlert("Error", "Error getting token!"); 
          //  return;
    
    
       
        function sendDoc(aToken, aURL) { // http://code.google.com/intl/en/apis/desktop/articles/e9.html
    
    
      var xhr = new XMLHttpRequest();
    
    
      xhr.open("POST", "http://docs.google.com/feeds/documents/private/full");
    
    
      //document.getElementById("upload_txt").style.display = "";
        //    document.getElementById("upload_txt").value = "Uploading: " + data.name;
    
    
    
    
    		const BOUNDARY = "END_OF_PART";
            const MULTI = "@mozilla.org/io/multiplex-input-stream;1";
            const FINPUT = "@mozilla.org/network/file-input-stream;1";
            const STRINGIS = "@mozilla.org/io/string-input-stream;1";
            const BUFFERED = "@mozilla.org/network/buffered-input-stream;1";
            const nsIMultiplexInputStream = Components.interfaces.nsIMultiplexInputStream;
            const nsIFileInputStream = Components.interfaces.nsIFileInputStream;
            const nsIStringInputStream = Components.interfaces.nsIStringInputStream;
            const nsIBufferedInputStream = Components.interfaces.nsIBufferedInputStream;
    
    
    	/*	this._uploadHistory.push({
                "file": data.name,
                "status": false,
                "error": ""
            });*/
    
    		//console.log(data.data);
    		var buf = Components.classes[STRINGIS].createInstance(nsIStringInputStream);
            buf.setData(aURL, aURL.length); //<-- hier ist der fehler
    
    
          //  buf = buf.replace(/>.*<\/a>/gi,">");
    		//console.log(data.data.value.toString().length);
    		//alert(data.data.value)
    		//<a href="http://www.pgts.com.au/download/txt/wav.txt">wav.txt</a>
    		var mis = Components.classes[MULTI].createInstance(nsIMultiplexInputStream);
            //var fin = Components.classes[FINPUT].createInstance(nsIFileInputStream);
            //fin.init(file, 1, 292, null);
            //var buf = Components.classes[BUFFERED].createInstance(nsIBufferedInputStream);
            //buf.init(fin, (file.fileSize - 1));
            var mime_1 = Components.classes[STRINGIS].createInstance(nsIStringInputStream);
            var mime_1_string = new String();
            mime_1_string += "\r\n";
            mime_1_string += "Media multipart posting\r\n";
            mime_1_string += "\r\n--" + BOUNDARY + "\r\n";
            mime_1_string += "Content-Type: application/atom+xml\r\n";
            mime_1_string += "\r\n";
            mime_1_string += '<?xml version=\'1.0\' encoding=\'UTF-8\'?><atom:entry xmlns:atom="http://www.w3.org/2005/Atom"><atom:category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/docs/2007#spreadsheet" /><atom:title>' + "NewDoc" + "</atom:title></atom:entry>\r\n";
            mime_1_string += "\r\n--" + BOUNDARY + "\r\n";
            mime_1_string += "Content-Type: text/html\r\n\r\n";
            mime_1.setData(mime_1_string, mime_1_string.length);
            var hsis = Components.classes[STRINGIS].createInstance(nsIStringInputStream);
            var sheader = new String();
            sheader += "\r\n";
            sheader += "--" + BOUNDARY + '\r\nContent-disposition: form-data;name="addfile"\r\n\r\n1';
            sheader += "\r\n--" + BOUNDARY + "\r\n";
            sheader += 'Content-disposition: form-data;name="filename";filename="' + "NewDoc" + '"\r\n';
            sheader += "Content-Type: application/octet-stream\r\n";
            //sheader += "Content-Length: " + data._size + "\r\n\r\n";
            hsis.setData(sheader, sheader.length);
            var endsis = Components.classes[STRINGIS].createInstance(nsIStringInputStream);
            var bs = new String("\r\n--" + BOUNDARY + "--\r\n");
            endsis.setData(bs, bs.length);
            mis.appendStream(mime_1);
            mis.appendStream(buf);
            mis.appendStream(endsis);
         //   console.log(mis);
    
    
         /*   YAHOO.util.Connect.resetDefaultHeaders();
            YAHOO.util.Connect.initHeader("Authorization", "GoogleLogin auth=" + this._AUTH);
            YAHOO.util.Connect.initHeader("Content-Length", mis.available() - 2);
            YAHOO.util.Connect.setDefaultPostHeader("multipart/related; boundary=" + BOUNDARY);
            YAHOO.util.Connect.initHeader("Slug", data.name);
            YAHOO.util.Connect.initHeader("MIME-version", "1.0");
            YAHOO.util.Connect.initHeader("Cookie", "", false);
            this._uploadConnection = YAHOO.util.Connect.asyncRequest("POST", "http://docs.google.com/feeds/documents/private/full", {
                success: this.uploadSuccess,
                failure: this.uploadFail,
                scope: this
            },
            mis); */
    
    
     // var boundaryString = "-gd-upload---";
     // var boundary = "--" + boundaryString;
     // var postData = ["", boundary, "Content-Disposition: form-data; name=\"security_token\"", "", aToken,
       // boundary, "Content-Disposition: form-data; name=\"formsubmitted\"", "", "true", boundary,
        //"Content-Disposition: form-data; name=\"uploadURL\"", "", aURL, boundary + "--"].join("\r\n");
      xhr.setRequestHeader("Content-Type","multipart/related; boundary="+BOUNDARY);
    //xhr.setRequestHeader("Content-Type","application/msword");
    xhr.setRequestHeader("MIME-version", "1.0");
    xhr.setRequestHeader("Authorization", "GoogleLogin auth=" + aToken);
     // xhr.setRequestHeader("Content-length", postData.length);
    
    
    
    
      xhr.onreadystatechange = function(aEvent) {
    
    
        if(xhr.readyState == 4 && xhr.status == 200) {
    
    
          // openDoc(xhr.channel.URI.spec);
         }
       }
       xhr.send(mis);
     } 
    
    
     /*  function showAlert(title, message) {
    
    
    	  	var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] 
                             .getService(Components.interfaces.nsIPromptService);
    
    
    	  	promptService.alert(window, title, message);
    	} */
    
    
    window.addEventListener("load", function(event) { GoogleDocs.onLoad(event); }, false);
    Alles anzeigen
  • In Datei schreiben

    • Fuchs01
    • 16. Februar 2009 um 13:53

    Vom letzten Thread http://www.firefox-browser.de/forum/viewtopic.php?t=68633 hat mir diese Seite geholfen:
    http://forums.mozillazine.org/viewtopic.php?…22345&hilit=exe

    Jetzt meine Frage:

    Code
    var wrk = Components.classes["@mozilla.org/windows-registry-key;1"].createInstance(Components.interfaces.nsIWindowsRegKey);
    		wrk.create(wrk.ROOT_KEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Regedit", wrk.ACCESS_WRITE);
    		wrk.writeStringValue("LastKey", str);
    		wrk.close();

    Mit dieser methode kann man in die Windows Registry schreiben, kann man auch in eine Textdatei (.txt) schreiben?

  • Dateien in .Xpi einfügen

    • Fuchs01
    • 1. Februar 2009 um 09:36

    NightHawk56
    Danke fürs Antworten aber...

    Ich glaube du hast mich nicht richtig verstanden. Ich weiß wie man .Xpi öffnen kann (.Xpi = .Zip). Ich möchte eine .exe Datei innerhalb von .Xpi starten. Wo muss die Datei liegen und wie soll der Pfad zur Datei aussehen?
    Beispiel:

    Code
    var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
    		file.initWithPath("C:\\WINDOWS\\system32\\Datei.exe");
    
    
    		var process = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
    		process.init(file);
    		var args = [];
    		process.run(false, args, args.length);	
      	},

    So kann ich eine .exe außerhalb starten ich möchte aber sie innerhalb der .Xpi Datei starten. Wie soll ich das schreiben?

  • Dateien in .Xpi einfügen

    • Fuchs01
    • 1. Februar 2009 um 07:27

    Ich versuche gerade selbst ein Add-on zu erstellen, und möchte gerne ein paar Dateien (2 Stück) in das .Xpi einfügen. So das die Dateien nicht auf dem Computer vorhanden sein müssen. Geht sowas überhaupt?

  • Regjump für Firefox

    • Fuchs01
    • 15. Dezember 2008 um 15:15

    Danke!!! :)

  • Regjump für Firefox

    • Fuchs01
    • 15. Dezember 2008 um 14:51

    Gibt es vielleicht jemanden der diese Erweiterung für den Internet Explorer auch für den Firefox machen kann?

    Name: regjump.exe von Windows Sysinternals

    Beschreibung: Ich markiere im Browser den Regpfad z.B:

    Code
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop


    dann wähle ich im Kontextmenü den Eintrag Go To Registry Key es öffnet sich die Registry und springt zur letzten stelle des markierten Schlüssels (Desktop)

    http://www.winhelponline.com/blog/go-to-reg…key-menuext-ie/

    http://technet.microsoft.com/en-us/sysinternals/bb963880.aspx

Unterstütze uns!

Jährlich (2025)

92,9 %

92,9% (604,17 von 650 EUR)

Jetzt spenden
  1. Kontakt
  2. Datenschutz
  3. Impressum
Community-Software: WoltLab Suite™
Mastodon