Javascript 读取文本文件,然后获取内容并显示到表yii2

Javascript 读取文本文件,然后获取内容并显示到表yii2,javascript,json,yii2,Javascript,Json,Yii2,这是我的javascript,在我的表单下面: $('#idOfButton').click(function(){ var id = $('#input').val(); $.get('index.php?r=tbltime/get-file',{ id : id },function(data){ var data = $.parseJSON(data); alert(data); }); }); 这是我的控制器,供我查看: public

这是我的
javascript
,在我的表单下面:

$('#idOfButton').click(function(){
var id = $('#input').val(); 
    $.get('index.php?r=tbltime/get-file',{ id : id },function(data){
        var data = $.parseJSON(data);
        alert(data);
    });
});
这是我的
控制器
,供我查看:

public function actionGetFile($id)
{
    $id = file_get_contents($id);
    echo Json::encode($id);

}
我的
表格
在我的表单视图中:

<table id="sampleTbl", class="table table-striped table-bordered">
    <thead>
        <tr id="myRow">
            <th>BIB</th>
            <th>Time Start</th>
            <th>Time End</th>
        </tr> 
    </thead>
    <tbody></tbody>
</table>

我想要的是在浏览文本文件时获取内容,然后显示在表中??当我尝试使用alert显示我的内容文件时,它不起作用。有人帮忙吗???

当您的警报显示时发生了什么?ajax get请求的响应代码是什么?如果有错误,请将其粘贴到此处

编辑: 很可能,在您的输入中,从哪里获得文件名,只有文件名存在,而不是文件的完整路径。因此,您应该通过将路径前缀添加到
file\u get\u contents
方法来修改您的操作:

public function actionGetFile($id)
{
    $fileContent= file_get_contents('D:/'.$id);
    echo Json::encode($fileContent);
    Yii::app()->end();

}

函数
file\u get\u contents
显然无法读取您的文件,因为您的文件在
C:\fakepath\dataimport.txt
中不可用。如果要读取磁盘上的文件
D://
,则必须提供文件目录
file\u get\u内容的完整路径(“文件目录的完整路径”。$id)
。请注意,这种方法并不好,因为您正在对脚本中的值进行硬编码。如果将此代码从本地计算机移动到服务器,则可能会出现某些问题

如果要从磁盘
C:\
读取文件,请将文件从磁盘D:\复制到
C:\fakepath\dataimport.txt

在控制器的echo
Json::encode($id)行之后放线
Yii::app()->end()因为您不想在此操作中渲染任何视图文件

更新

有三种可能的情况

第一个场景 第一种情况是,要在表中显示的文件是您知道的文件,这意味着这不是客户上载的文件。在这种情况下,将文件复制并粘贴到项目文件夹中,只需提供文件的相对路径,该函数就可以读取。即使您将项目部署到其他服务器上,这也将始终有效

第二种情况 另一种情况是,文件将来自最终用户。在这种情况下,您必须首先使用PHP上传文件,然后将文件内容发送到Ajax脚本

第三种情况
使用JavaScript读取文件内容并在视图中显示。这里有一个例子:

eror for reponse
PHP警告';yii\base\ErrorException';带有消息';文件获取内容(C:\fakepath\dataimport.txt):无法打开流:没有这样的文件或目录'驱动器D中的我的文件:dataimport.txt,但此错误获取驱动器C。我不知道如何获取完整路径,当我使用类似于此的表单时
选择文件
??感谢您在第三个场景中提供链接,请帮助我@mrD
public function actionGetFile($id)
{
    $fileContent= file_get_contents('D:/'.$id);
    echo Json::encode($fileContent);
    Yii::app()->end();

}