这是我的表格下面的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);
    });
});这是我的观点的controller:
public function actionGetFile($id)
{
    $id = file_get_contents($id);
    echo Json::encode($id);
}我的表单视图中的table:
<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>我的text file
202#00:00:00.000000#00:02:13.045000
764#00:03:12.037300#00:04:12.123000
223#00:04:50.011000#00:05:12.045000我想要的是在浏览文本文件时获取内容,然后显示到表中??当我尝试使用警告来显示我的内容文件时,它是不工作的。有人帮忙吗?
发布于 2015-11-04 07:10:58
函数file_get_contents显然无法读取您的文件,因为您的文件在C:\fakepath\dataimport.txt中不可用。如果要在磁盘D:/上读取文件,则必须提供文件目录file_get_contents('FULL PATH TO THE FILE DIRECTORY'.$id)的完整路径。请注意,这种方法不好,因为您正在硬编码脚本中的值。如果将此代码从本地计算机移动到服务器,可能会发生某些事情无法工作的情况。
如果要从磁盘C:\读取文件,那么将文件从磁盘D:\复制到C:\fakepath\dataimport.txt。
在您的控制器中,在回显Json::encode($id);之后放置行Yii::app()->end();,因为您不希望在此操作中呈现任何视图文件。
更新
有三种可能的情况。
第一个场景第一个场景是当您想要在表中显示的文件是您所知道的文件时,这意味着这不是客户上传的文件。在这种情况下,复制并粘贴您的文件到您的项目文件夹,只需提供它的相对路径,函数将能够读取。即使当您将项目部署到其他服务器时,这也将始终有效。
第二个场景其他场景是该文件将来自最终用户。在这种情况下,您必须首先使用PHP上传文件,然后将文件内容发送到Ajax脚本。
第三种场景,使用JavaScript读取文件的内容并在视图中显示。下面是一个例子:http://www.aspsnippets.com/Articles/Read-Parse-and-display-CSV-Text-file-using-JavaScript-jQuery-and-HTML5.aspx
发布于 2015-11-04 06:43:51
当你的警报显示出来时发生了什么?什么是ajax请求的响应代码?如果有错误,请贴在这里。
编辑:可能,在您的输入,从哪里得到您的文件名,只有文件名是存在的,而不是完整的路径文件。因此,应该通过向file_get_contents方法添加路径前缀来修改操作:
public function actionGetFile($id)
{
    $fileContent= file_get_contents('D:/'.$id);
    echo Json::encode($fileContent);
    Yii::app()->end();
}https://stackoverflow.com/questions/33514835
复制相似问题