将CSV数据呈现为HTML

3
我正在尝试将jquery csv转换为表格插件与jquery文件上传插件(请参见http://code.google.com/p/jquerycsvtotable/)配合使用。它支持上传CSV文件,并在成功上传后(使用JQuery文件上传)立即在同一页上将其呈现为HTML。当我按照下面的示例设置$filePath时,这个功能可以正常工作。然而,我希望将此值作为隐藏字段传递,并使用.attr方法检索它。但是,当我这样做时,CSV转换为表格似乎无法正确呈现,页面似乎会挂起并显示loadingImage(更新仍然有效),而“loadComplete”函数不会执行(如下面示例中的警报所示)。
我可以按以下方式使其正常工作(请参见粗体行):
    }).bind('fileuploadcompleted', function (e, data) {        
        var $filename = $.trim($('#fileupload td.name').text());
        **var $filePath = 'bundles/jqueryfileupload/users/';
        //var $filepath = $('#upload_path_id').attr('value');**
        $.get($filePath + $filename, function(data) {
            $('#CSVSource').html('<pre>' + data + '</pre>');
        });
        $('#CSVTable').CSVToTable($filePath + $filename,{
          loadingImage: 'bundles/jqueryfileupload/img/loading-table.gif',
          startLine: 0 }             
        ).bind("loadComplete",function() {
              alert('load complete!');
              $('button.btn.import').removeClass('disabled').addClass('ready');
              $('div.alert.alert-info').show();
        });

你有任何想法如何解决这个问题吗?

更新:看起来问题存在于我检索绝对路径,因为使用ajax调用呈现csv到HTML时失败了。我正在使用Laravel,并已更新paths.php文件以包含以下条目:

// --------------------------------------------------------------
// The path to the storage/users directory.
// --------------------------------------------------------------
$paths['user_files'] = 'storage/users';

然后在我的视图文件中,我将文件路径作为隐藏字段传递,如下所示:

<input type="hidden" id="upload_path_id" name="upload_path" value={{ path('user_files') }}>

我的问题是,如果我在本地机器上同时使用Laravel和Xampp,是否有一种方法可以通过ajax使其工作,可以是相对路径或其他方式?我使用的文件夹位于Laravel的一部分(即在“storage”下),并且在公共目录之上。非常感谢您的任何帮助。
1个回答

4

在IRC上聊天时,我得到了支持建议创建一个路由到一个控制器(php),该控制器将可以访问存储目录并以此方式检索文件内容。

因此,与当前的php -> js -> js情况不同,我会有以下情况: php(视图) -> js(进行ajax调用) -> php(控制器) -> 获取存储路径 -> php(控制器)(执行文件获取内容) -> js(将结果呈现为HTML)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接