2017-10-15 133 views
0

我正在使用SimpleHTTPServer服務一個目錄並在本地運行和html代碼。在那裏,我使用getusermedia API來拍攝一些照片。如果我使用js localstorage存儲圖片,那麼它們的存儲位置是什麼?我如何將它們複製到一個已知的目錄?如何將圖像從SimpleHTTPServer存儲到我的電腦?

回答

1

瀏覽器通常在加密的完全私人區域管理localStorage和sessionStorage變量,以便您的瀏覽體驗儘可能安全(設想如果您在訪問您的網頁時可以讀取和寫入某些文件!!)。

您不能在不知道的情況下將圖像複製到客戶端計算機或從客戶端計算機複製圖像。但是,您可以導致服務器端自動下載。

至於保存先前下載的圖像,請參閱:

How to save an image to localStorage and display it on the next page?

然而,做筆記,最大存儲空間通常封頂,與尺寸瀏覽器和它們的相對環境之間極不相同的。

我自己的測試表明Chromium默認只支持10x 5mb的文件。

編輯:

至於複製到一個已知的目錄,則必須將文件發送回您的HTTP服務器,並從那裏收集它們。如果您願意,可以使用ajax,通過將數據轉換爲base64,使您可以使用json字符串發送數據('數據編碼失敗將導致錯誤'),並在服務器端收集新的Buffer(str ,「base64」)toString(「binary」)

var http = require('http'), 
cluster = require('cluster'), 
path = require('path') 
url = require('url') 
util = require('util') 

function posthandler(request,response){ 
    if(request.url=="/image_streamer"){ 
     var datum = []; 
     request.on('data',function(d){datum.push(d);}); 
     request.on('end',function(){ 
      datum = JSON.parse(datum.join("").toString('utf8')); 
      datum.image = new Buffer(datum.image,"base64"); 
      // datum.image NOW POINTS TO A BINARY BUFFER :) HAPPY DAYS. 
     }); 
    } 
} 

var server = http.createServer(function(request,response){ 
    switch(request.method){ 
     case: "GET":{} break; 
     case: "POST":{posthandler(request,response);} break; 
    }; 
}).listen(8080); 
+0

謝謝!第一部分看起來很簡單! 至於第二個,如果我使用SimpleHTTPServer,我可以做所有這些嗎? –

+0

這似乎不可能,將編輯包括一個小片段 –

相關問題