Mam coś takiego jak aplikacja do rysowania. Użytkownik może zapisywać projekty, a następnie je ładować. Kiedy ładuję po raz pierwszy jeden plik (np. Project1.led) wprowadzam pewne zmiany w aplikacji, ale nie zapisuję, a następnie ponownie ładuję ten sam plik (project1.leds) nic się nie dzieje. Nie mogę załadować tego samego pliku więcej niż jeden raz. Jeśli załaduję inny plik, jego działanie.Filereader - prześlij ponownie ten sam plik
Kod:
$("#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);
});
mogę usunąć/usunąć plik pamięci podręcznej? Czy jest nawet buforowany w przeglądarce?
To nie jest buforowane, to tylko wybrany plik. Słuchasz wydarzenia zmiany. Jeśli wybierzesz ten sam plik ponownie nic się nie zmieni, nie zostanie wywołana żadna zmiana zdarzenia. Możesz spróbować ustawić 'e.target.files = null' lub coś podobnego po ich przeczytaniu. (btw to nie ma nic wspólnego z przesyłaniem, nie ładujesz niczego, tylko ładujesz je lokalnie, prawda?) – Winchestro
Tak, ładuję je lokalnie. 'e.target.files = null' nie pomaga. – sko