我使用SimpleHTTPServer来提供目录并在本地运行和html代码。在那里,我使用getusermedia api拍摄一些照片。如果我使用js localstorage存储图片,它们在哪里存储?如何将它们复制到已知目录?
答案 0 :(得分:1)
浏览器通常在加密的,完全私密的区域中管理localStorage和sessionStorage变量,以便您的浏览体验尽可能安全(想象一下,如果您在访问网页时可以读取和写入某些文件!!)。 / p>
您无法在不知情的情况下将图像复制到客户端计算机或从客户端计算机复制图像但是,您可以在服务器端自动下载。
至于保存以前下载的图像,请参阅:
How to save an image to localStorage and display it on the next page?
但是,请注意,最大存储空间通常是上限,浏览器及其相对环境之间的大小差异很大。
我自己的测试表明,Chromium默认只支持10x 5mb文件。
编辑:
对于复制到已知目录,您必须将文件发送回您的http服务器并从那里收集它们。如果您愿意,可以使用ajax,通过将数据转换为base64,使您能够以json字符串发送数据('无法编码数据将导致错误'),并在服务器端使用新缓冲区收集(str “BASE64”)。的toString( “二进制”)
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);