2014-02-27 110 views
-2

我有以下代码。在这我显示正常的文字。代替我想我想在选择下拉选项时显示本地文本文件

加载本地文本文件。

我无法加载本地文本文件。

在这里,我想从选择选项a的textarea的我的主文件夹中加载a.txt文件的内容。等等。

<html> 
<body> 

<div class="left"> 
File Display 
<p> 

<select class="x" onchange="showfile(this);"> 

<option selected="selected" value="" id="Templates">Please select an option</option> 

<option>a</option> 

<option>b</option> 

<option>c</option> 

<option>d</option> 

</select> 

</p> 

<p> 

<textarea cols="30" rows="20" readonly="readonly" id="textar"> 

</textarea> 

</p> 

</div> 

<script> 

function showfile(sel){ 

files =[ "", 

/*option a*/     

"display file a.txt ", 

/*option b*/     

" display file b.txt ", 

/*option c*/     

" display file c.txt", 

/*option d*/     

"display file d.txt", ]; 

        srcfile = files [sel.selectedIndex];  

    if (srcfile != undefined && srcfile != "") {  

        document.getElementById('textar').innerHTML= srcfile; 

} 

} 

</script> 

</body> 
</html> 
+1

如果我理解正确你的问题,JavaScript不容许使用在本地系统上的文件访问由于安全方面的原因。请阅读此答案:http://stackoverflow.com/a/372​​333/1155208 – ninty9notout

+0

您需要j查询Ajax(客户端脚本)和PHP(服务器端脚本)。 j查询将要求通过PHP获取所有数据的Ajax。在PHP文件中,您需要编写文件操作代码来打开文件,读取并显示内容。 –

+0

它可以在django,python中完成吗? – user1862399

回答

2

UPDATE

使用的FileReader API:

来源:

HTML

<div id="page-wrapper"> 

    <h1>Text File Reader</h1> 
    <div> 
     Select a text file: 
     <input type="file" id="fileInput"> 
    </div> 
    <pre id="fileDisplayArea"><pre> 

</div> 

JS

window.onload = function() { 
    var fileInput = document.getElementById('fileInput'); 
    var fileDisplayArea = document.getElementById('fileDisplayArea'); 

    fileInput.addEventListener('change', function(e) { 
     var file = fileInput.files[0]; 
     var textType = /text.*/; 

     if (file.type.match(textType)) { 
      var reader = new FileReader(); 

      reader.onload = function(e) { 
       fileDisplayArea.innerText = reader.result; 
      } 

      reader.readAsText(file);  
     } else { 
      fileDisplayArea.innerText = "File not supported!" 
     } 
    }); 
} 
+0

您可以向客户端的本地文件系统发出AJAX请求?这不会破坏内置于JavaScript的安全规则吗? –

+0

@ScorpionRulz尝试改变这一行:'rawFile.open(“GET”,file,true);''rawFile.open(“GET”,file,false);' – LGSon

+0

@JayBlanchard根据它的工作原理。事情是你需要事先知道路径,你不能查询。 – LGSon