How to open a local disk file with JavaScript?

前端 未结 9 2053
[愿得一人]
[愿得一人] 2020-11-22 01:21

I tried to open file with

window.open(\"file:///D:/Hello.txt\");

The browser does not allow opening a local file this way, probably for sec

9条回答
  •  别那么骄傲
    2020-11-22 01:42

    Because I have no life and I want those 4 reputation points so I can show my love to (upvote answers by) people who are actually good at coding I've shared my adaptation of Paolo Moretti's code. Just use openFile(function to be executed with file contents as first parameter).

    function dispFile(contents) {
      document.getElementById('contents').innerHTML=contents
    }
    function clickElem(elem) {
    	// Thx user1601638 on Stack Overflow (6/6/2018 - https://stackoverflow.com/questions/13405129/javascript-create-and-save-file )
    	var eventMouse = document.createEvent("MouseEvents")
    	eventMouse.initMouseEvent("click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)
    	elem.dispatchEvent(eventMouse)
    }
    function openFile(func) {
    	readFile = function(e) {
    		var file = e.target.files[0];
    		if (!file) {
    			return;
    		}
    		var reader = new FileReader();
    		reader.onload = function(e) {
    			var contents = e.target.result;
    			fileInput.func(contents)
    			document.body.removeChild(fileInput)
    		}
    		reader.readAsText(file)
    	}
    	fileInput = document.createElement("input")
    	fileInput.type='file'
    	fileInput.style.display='none'
    	fileInput.onchange=readFile
    	fileInput.func=func
    	document.body.appendChild(fileInput)
    	clickElem(fileInput)
    }
    Click the button then choose a file to see its contents displayed below.
    
    

提交回复
热议问题