1. 程式人生 > 其它 >js本地檔案讀寫

js本地檔案讀寫

直接上程式碼

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>本地檔案讀寫</title>
	</head>
	<script type="text/javascript">
		(function (console) {
		    console.save = function (data, filename) {
		        if (!data) {
		            console.error('No data');
		            return;
		        }
		 
		        if (!filename) filename = 'data.json';
		        if (typeof data === "object") {
		            data = JSON.stringify(data, undefined, 4)
		        }
		 
		        var blob = new Blob([data], {type: 'text/json'}),
		            e = document.createEvent('MouseEvents'),
		            a = document.createElement('a');
		        a.download = filename;
		        a.href = window.URL.createObjectURL(blob);
		        a.dataset.downloadurl = ['text/json', a.download, a.href].join(':');
		        e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
		        a.dispatchEvent(e)
		    }
		 
		})(console);

		var arr = new Array();
		var temp_str ="";
		var i = 0;
		function showPreview(source){
			var input = source;
			var reader = new FileReader();
			reader.readAsText(input.files[0]);
			reader.onload = function() {
				if(reader.result) {
			   //顯示檔案內容
					temp_str = reader.result;
				}
			};
		}
		function showText()
		{
			if(temp_str=="")
			{
				alert("請先上傳檔案");
			}
			else
			{
				document.getElementById("text").innerHTML=temp_str;
			}
		}

		function saveText()
		{
			var text = document.getElementById("text").value;
			if(text=="")
			{
				alert("沒有內容");
			}
			else
			{
				console.save(text,"data.json");
				
			}
		}
	</script>
	<body>
		<div style="display: flex; justify-content: center;">
			<div id="div" align="center" style="width: 300px;height: 600px; background-color: #eee;">
				<br>
				<input type="file" name="file" value="上傳檔案" onchange="showPreview(this)" />
				<br>
				<br>
				<br>
			
				<br>
				<br>
				<input type="button" value="顯示檔案內容" onclick="showText()">
				<br>
				<br>
				<input type="button" value="另存檔案內容" onclick="saveText()">
			</div>
			<div id="div" align="center" style="width: 1000px;height: 600px; background-color: #000000;">
				<textarea  id="text"style="width: 1000px;height: 600px; background-color: #000000; color: #ffffff;"></textarea>
			</div>
		</div>
	</body>
</html>