我正在使用AngularJS并尝试使用php的filemtime()函数打印文件上传到服务器的日期,但是我收到错误。
以下是我在我的一个表格单元格中尝试使用的内容:
<td><?php $file = 'images/icons/{{icon.fileName}}.png'; echo date('m/d/Y', filemtime($file)); ?></td>
不幸的是,当您查看该页面时,我收到以下PHP错误:
Warning: filemtime(): stat failed for images/icons/air_balloon.png in /home/ogmda/public_html/symbols/symbols.php on line 105
12/31/1969
我的直播demo is here。
有人可以帮助我走上正确的道路来解决这个问题吗?感谢。
答案 0 :(得分:0)
这里有一个经典的前端与后端问题。在开始在Angular的前端开始使用它之前,你必须从服务器获得所需的一切(除非你再做一个ajax请求来获取更多数据)。
因此,我建议您使用icon
对象发送更多信息。
您的页面中有此脚本,该脚本将转到MOCK_DATA2.json以获取信息。该文件不仅需要包含icon.fileName,还需要包含icon.filemtime。您可以手动或使用服务器端脚本来添加或生成它。
var iconApp = angular.module('iconApp', ['ngAnimate']);
iconApp.controller('ListController', ['$scope', '$http', function($scope, $http){
$http.get('js/MOCK_DATA2.json').success(function(data){
$scope.iconData = data;
$scope.orderProp = "name";
});
}]);
一旦将这些内容添加到iconData,您就可以更改您的网页&nbsp; html:
<tr ng-animate="'animate'" ng-repeat="icon in filtered = (iconData | filter: query | orderBy: orderProp)">
<td><img src="images/icons/{{icon.fileName}}.png"></td>
<td>{{icon.name}}</td>
<td>{{icon.group}}</td>
<td>{{icon.description | limitTo:50:begin}}</td>
<td>{{icon.filemtime}}</td>
</tr>
PHP选项
如果您没有选择向文件添加更多信息,那么您可以使用php json_decode()
加载它,循环图标并获取每个文件的时间。然后将每个数据添加到您的数据json_encode()
,然后以javascript可以看到的方式将其打印到页面的html:
var iconData = <?php print json_encode($iconData); ?>;
还有一点工作,然后您将图标数据粘贴在页面的html中,但可能更容易管理。
最终选项
还有另一种选择,但这需要每个图像额外的ajax请求才能尝试获取文件修改时间。见这里:
Is it possible with javascript to find file's last modified time?