这是我表格下面的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
我想要的是在浏览文本文件然后显示到表格时获取内容?当我尝试使用警报来显示我的内容文件时,它不起作用。有人帮忙??
答案 0 :(得分:1)
功能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
答案 1 :(得分:0)
警报显示时发生了什么?什么是ajax get请求的响应代码?如果有错误请将它们粘贴在这里。
编辑:
也许,在您的输入中,从您获取文件名的位置,仅存在文件名,而不是文件的完整路径。因此,您应该通过向file_get_contents
方法添加路径前缀来修改您的操作:
public function actionGetFile($id)
{
$fileContent= file_get_contents('D:/'.$id);
echo Json::encode($fileContent);
Yii::app()->end();
}