Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在会话存储中保存输入文件类型信息?_Javascript_Jquery_File Type - Fatal编程技术网

Javascript 如何在会话存储中保存输入文件类型信息?

Javascript 如何在会话存储中保存输入文件类型信息?,javascript,jquery,file-type,Javascript,Jquery,File Type,我有这个代码用于文件保存浏览,特别是图像。。 我知道您不能以编程方式设置文件,出于安全原因,您必须转到文件夹弹出窗口以选择文件。所以我的问题是,我希望文件保存在sessionStorage中,这样当用户重新加载页面时,他们就不需要重新选择图像 我正在用这种方法 var fileInput = document.getElementById('file'); sessionStorage.input = JSON.stringify(fileInput); 但是当我重新加载页面时,它不再与 f

我有这个代码用于文件保存浏览,特别是图像。。

我知道您不能以编程方式设置文件,出于安全原因,您必须转到文件夹弹出窗口以选择文件。所以我的问题是,我希望文件保存在sessionStorage中,这样当用户重新加载页面时,他们就不需要重新选择图像

我正在用这种方法

var fileInput = document.getElementById('file');
sessionStorage.input = JSON.stringify(fileInput);
但是当我重新加载页面时,它不再与

formData.append(fileInput.files[0].name, sessionStorage.input);

我尝试执行console.log(sessionStorage.inputFile),但它只打印了“[对象文件]”

您可以使用下面的代码将图像数据保存在会话存储中

var file = element.files[0];
var reader = new FileReader()
reader.onload = function(base64) {
    localStorage["file"] = base64;
}

//Store it in session storage
var img_base64 = localStorage["file"];

var base64_arr = img_base64_data.split(",");
var img_format = base64_arr[0].split(";")[1];
var img_content = base64_arr[1];

var file = new File([img_content], "<file name>", {type: img_format});

// get file as file.files[0] and store it in session storage
var file=element.files[0];
var reader=new FileReader()
reader.onload=函数(base64){
本地存储[“文件”]=base64;
}
//将其存储在会话存储中
var img_base64=本地存储[“文件”];
var base64\u arr=img\u base64\u data.split(“,”);
var img_format=base64_arr[0]。拆分(“;”)[1];
var img_content=base64_arr[1];
var file=新文件([img_content],“”,{type:img_format});
//以file.files[0]的形式获取文件,并将其存储在会话存储中

您可以使用下面的代码将图像数据保存到会话存储中

var file = element.files[0];
var reader = new FileReader()
reader.onload = function(base64) {
    localStorage["file"] = base64;
}

//Store it in session storage
var img_base64 = localStorage["file"];

var base64_arr = img_base64_data.split(",");
var img_format = base64_arr[0].split(";")[1];
var img_content = base64_arr[1];

var file = new File([img_content], "<file name>", {type: img_format});

// get file as file.files[0] and store it in session storage
var file=element.files[0];
var reader=new FileReader()
reader.onload=函数(base64){
本地存储[“文件”]=base64;
}
//将其存储在会话存储中
var img_base64=本地存储[“文件”];
var base64\u arr=img\u base64\u data.split(“,”);
var img_format=base64_arr[0]。拆分(“;”)[1];
var img_content=base64_arr[1];
var file=新文件([img_content],“”,{type:img_format});
//以file.files[0]的形式获取文件,并将其存储在会话存储中

我相信,在会话中将文件数据转换为base64编码字符串后,您将能够保存文件数据。您无法对二进制数据进行字符串化。不过,您可以对文件进行base 64编码,并将其放入一个对象中,如
{base64data:“…encoded data here”}
,然后将其字符串化并存储。根据映像的大小,您可能需要检查您是否处于会话存储容量限制的范围内。除上述注释外,您应该使用
sessionStorage.setItem()
sessionStorage.getItem()
formData.append(fileInput.files[0].name,sessionStorage.getItem(“input”);
我相信在session中将文件数据转换为base64编码的字符串后,您将能够保存文件数据。您无法对二进制数据进行字符串化。不过,您可以将文件进行base64编码,并将其放入一个对象中,如
{base64data:“…encoded data here”}
,然后将其字符串化并存储。根据映像的大小,您可能需要检查您是否处于会话存储容量限制的范围内。在上面的注释之上,您应该使用
sessionStorage.setItem()
sessionStorage.getItem()
formData.append(fileInput.files[0].name,sessionStorage.getItem(“输入”);