使用javascript从解析的文本文件存储变量

时间:2014-05-30 03:29:56

标签: javascript variables

该文本文件包含我希望与我的网站一起用于登录目的的信息

文本文件包含以下内容......逐行显示

用户:密码 用户2:user2password

我尝试使用blob来读取文本文件,但变量没有存储,所以我想知道我哪里出错了,或者我是否能够使用这种方法读取文件

function readFile(){
    var fileName = txtName.value;
    file = login.txt;
    var blob = file.read();
    var readText = blob.text;
    var lines = data.split("\n && : " );
        //Adding the file content to the label placed
    lblFileContent.setText(readText);
    Ti.API.info(readText);
    // dispose of file handle & blob.
    file = null;
    blob = null;
}

3 个答案:

答案 0 :(得分:0)

我过去曾用过这个来读取txt文件:

JavaScript(jQuery):

function readFile() {
    $.post('path/to/php/read_file.php', {
        dir: 'path/to/file',
        file: 'file_name.txt',
    },function(file_contents) {
        if (file_contents != '') {
            //your code here
        }
    });
}

<强> PHP:

<?php
    /* This script is invoked by 'index.html'.
     * This script gets the content of the file that has been changed by 
     * the admin, and uses it to determine the path of the file 
     * that is currently set by the admin.
     */
    $dir = $_POST["dir"];
    $file = $_POST["file"];
    $contents= '';

    if ($dhandle = opendir("$dir")) {
        while (false !== ($entry = readdir($dhandle))) {
            if ($entry != "." && $entry != "..") {
                if ($entry == $file) {
                    $entry_path = $dir.DIRECTORY_SEPARATOR.$entry;

                    $fhandle = fopen($entry_path, 'r');
                    $value = fread($fhandle, filesize($entry_path));
                    fclose($fhandle);
                }
            }
        }
        closedir($dhandle);

        echo "$contents";
    }
?>

答案 1 :(得分:0)

您可能想尝试HTML 5文件API

1)要指定文本文件,请添加输入类型文件HTML标记(如果单击,将显示文件选择对话框)。

<input type="file" id="myFileId">

2)添加一个将在您选择文件时执行的侦听器,从而触发“更改”。事件

    document.getElementById('myFileId').addEventListener('change', function(e) {

    });

3)在EventListener中使用FileReader读取文本文件。

    document.getElementById('myFileId').addEventListener('change', function(e) {

        var file = document.getElementById('myFileId').files[0];
        var reader = new FileReader();
        reader.onload = function(e) {

            var userPass = reader.result.split(" "); // split by space
            // userPass is an array where each element has a user:pass 
            // do your stuff


        } // onload

        reader.readAsText(file);

    });

在尝试阅读之前,您可能需要检查文件类型/大小。

答案 2 :(得分:0)

这是您可能感兴趣的解决方案。

包含的名为login.txt的文本文件我正在使用JavaScript读取此文件。

user
myuser
password
myuserpassword

我的JavaScript代码

var loadXMLDoc=function(){
    var Credentials={};

    if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    } else {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange=function(){
        if (xmlhttp.readyState==4 && xmlhttp.status==0){
            var temp=xmlhttp.responseText.split('\n');

            for(i=0;i<temp.length;i++){
                switch(temp[i].trim()){
                    case "user":
                    case "User":
                        Credentials.Username=temp[i+1];
                        break;
                    case "password":
                    case "Password":
                        Credentials.Password=temp[i+1];
                        break;
                }
            }

            console.log(Credentials); //Printing the object in the console.
        }
    }
    xmlhttp.open("GET","login.txt",true);
    xmlhttp.send();
}

HTML input。请注意我在这里调用js函数。

<input type="button" id="load" value="Click me!" onclick="loadXMLDoc();"/>

使用function getPassword("myuser")在控制台中打印密码。

var getPassword=function(username){ // It takes one string parameter which is the username.
    var password="";
    if(Credentials.Username){
        if(Credentials.Username.trim()==username) password=Credentials.Password;
    }
    return password;
};