3

jquery csv to table プラグインを 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();
        });

この問題を回避する方法はありますか?

更新:絶対パスを取得していて、csv を HTML にレンダリングする ajax 呼び出しで失敗しているため、問題が存在するようです。私は 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 の一部 (つまり、「ストレージ」の下) であり、パブリック ディレクトリの上にあります。

これに関するヘルプは大歓迎です。

4

1 に答える 1

4

IRC でのチャット ストレージ ディレクトリにアクセスできるコントローラー (php) へのルートを作成し、その方法でファイルの内容を取得することを提案するサポートを受けました。

したがって、現在の php -> js -> js シナリオの代わりに、次のようになります: php (ビュー) -> js (make ajax call) -> php (コントローラー) -> ストレージ パスの取得 -> php (コントローラー) ( file get content) -> js (結果を HTML としてレンダリング)

于 2012-11-20T13:35:03.470 に答える