2013-03-07 43 views
0

我正在一個小的web應用程序生成一個base64圖像,我用blob把它放回到一個文件(是一個PNG,但我還沒有改名它),現在我試圖保存在我的服務器上任何想法或不同的方法?如何用JavaScript保存服務器上的圖像?

這是腳本:

var img = document.getElementById("MyPix"); 
    img.onclick = function() { 

     var image_data = atob(img.src.split(',')[1]); 
     var arraybuffer = new ArrayBuffer(image_data.length); 
     var view = new Uint8Array(arraybuffer); 
     for (var i=0; i<image_data.length; i++) { 
      view[i] = image_data.charCodeAt(i) & 0xff; 
     } 
     try { 
      var blob = new Blob([arraybuffer], {type: 'application/octet-stream'}); 
     } catch (e) { 
      var bb = new (window.WebKitBlobBuilder || window.MozBlobBuilder); 
      bb.append(arraybuffer); 
      var blob = bb.getBlob('application/octet-stream'); 
     } 

     var url = (window.webkitURL || window.URL).createObjectURL(blob); 

     valor = (document.getElementById("link").value = url) 

     location.href = valor; 

    }; 

我不是很好用的js,所以如果你想有一個更好的主意訪問項目clicking here其所有的JavaScript所以只看到源代碼。

+0

你的服務器在運行什麼? – 2013-03-08 16:13:28

+0

Apache/1.3.27(Unix)PHP/4.4.6 – 2013-03-08 16:39:44

+0

AIEEEE!這很古老--PHP 4.4.6於2007年3月發佈**。在你做其他事情之前,先找一個更好的網絡主機。 – duskwuff 2013-03-09 00:15:48

回答

1

您無法使用客戶端JavaScript保存到您的服務器。形成你想要保存在Javascript中的數據,然後通過調用一個頁面來將它發佈到你的服務器上,這個頁面可以將POST數據轉化爲你文件系統中的一個文件,所以你的情況就是一個.php文件, $_POST數據,然後將其寫入文件。確保安全後,因爲任何人都可以將數據發佈到該頁面,而不僅僅是使用您的網頁的人。

相關問題