You may want to look into localStorage to store the filePath
The localStorage property allows you to access a local Storage object.
localStorage is similar to sessionStorage. The only difference is
that, while data stored in localStorage has no expiration time, data
stored in sessionStorage gets cleared when the browsing session
ends—that is, when the browser is closed.
Store path
localStorage.setItem('filePath', 'YOUR_PATH');
Read Path
var file_path = localStorage.getItem('YOUR_PATH');
You can also store objects by stringifying it.
localStorage.setItem('formData', JSON.stringify(YOUR_FORM_DATA_OBJ));
when reading parse to object
var YOUR_FORM_DATA_OBJ = JSON.parse(localStorage.getItem('formData'));
UPDATE
Checkout this fiddle
Your cannot read path to the file due to security issue
but you can convert your file to blob dataURL and save it in localStrorage
In the fiddle above I have used image to store in localstorage and show them later.
STORING FILE
avatar = input.files[0]; //Read your input file here
var reader = new FileReader(); //create a FileReader Object
reader.addEventListener("load", function () { // A listener to read the file as blob
var data = reader.result; // Your blob data
// Saving the blob data to localStorage
localStorage.setItem('fileData', // Key and object storing name and blob data of file
JSON.stringify({name:avatar.name,data:data}));
}, false);
if (avatar) {
// reading file to get blob, this will call the load method above
reader.readAsDataURL(avatar);
}
READING FILE
var fileData = localStorage.getItem('fileData'); // getting data from local storage
if(fileData) {
fileData = JSON.parse(fileData); // parsing local storage data
avatar=dataURLtoFile(fileData.data,"filename"); //converting dataURL to file
}
/*Function to convert blob dataURL and returns a file object
Takes a dataURL (data:image/png;base64,sadasd...) and filename
and returns a file object
*/
function dataURLtoFile(dataurl, filename) {
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while(n--){
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], filename, {type:mime});
}
FULL JS
window.input = $('#myForm').find('#avatar')[0];
window.preview = $('#show');
window.avatar;
function dataURLtoFile(dataurl, filename) {
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while(n--){
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], filename, {type:mime});
}
function changeFile() {
avatar = input.files[0]; //Read your input file here
var reader = new FileReader(); //create a FileReader Object
var path = URL.createObjectURL(avatar); //Create URL to show current image
preview[0].src=path; // set url of blob to image src (just to preview current image)
reader.addEventListener("load", function () { // A listener to read the file as blob
var data = reader.result; // Your blob data
// Saving the blob data to localStorage
localStorage.setItem('fileData', // Key to store
JSON.stringify({name:avatar.name,data:data})); // an object storing name and blob data of file
}, false);
if (avatar) {
reader.readAsDataURL(avatar); // reading file to get blob, this will call the load method above
}
}
input.addEventListener('change', changeFile); // adding change listener to input
window.init = function(){ // called on page load
var fileData = localStorage.getItem('fileData'); // getting data from local storage
if(fileData) {
fileData = JSON.parse(fileData); // parsing local storage data
avatar=dataURLtoFile(fileData.data,"filename"); converting dataURL to file
var path = URL.createObjectURL(avatar);// getting a url to show the image
preview[0].src=path; // setting url to image
}
}
init();