我有像绘制应用程序。用户可以保存项目并加载它们。当我第一次加载一个文件(例如project1.leds)在应用程序中进行一些更改但不保存它,然后再次加载相同的文件(project1.leds)时,什么都不会发生。我不能一次加载同一个文件。如果我加载其他文件,它的工作。Filereader - 再次上传相同的文件不起作用
代码:
$("#menu-open-file").change(function(e){
var data=[];
var file = null;
file = e.target.files[0];
console.log(file)
var reader = new FileReader();
reader.onload = function(e){
data=JSON.parse(reader.result);
x=data[0].SIZE[0];
y=data[0].SIZE[1];
if(x==15) x=16;
if(x==30) x=32;
if(x==60) x=64;
if(y==15) y=16;
if(y==30) y=32;
if(y==60) y=64;
createLeds(x,y,data,false,false);
clearActiveTools();
var svg = $('#contener').find('svg')[0];
svg.setAttribute('viewBox','0 0 ' + x*20 + ' ' + y*20);
$("#contener").css("width",x*20).css("height",y*20);
$("#contener").resizable({
aspectRatio: x/y,
minHeight: 200,
minWidth: 200,
});
wiFirst = $("#contener").width();
hiFirst = $("#contener").height();
}
reader.readAsText(file);
});
我可以删除/删除缓存文件?它甚至被缓存在浏览器中?
它没有被缓存,它只是选定的文件。您正在收听更改事件。如果再次选择相同的文件没有任何变化,则不会触发更改事件。阅读完后你可以尝试设置'e.target.files = null'或类似的东西。 (顺便说一句,它与上传无关,你没有上传任何东西,只是在本地加载它,对吧?) – Winchestro 2014-10-29 16:28:47
是的,我在本地加载它。 'e.target.files = null'没有帮助。 – sko 2014-10-29 17:03:04