0

私は、ユーザーがフロントエンド Web 開発に使用するファイルをアップロードし、ユーザーが行った作業がブラウザーでどのように見えるかを示すプロジェクトに取り組んでいます。これを行うために、test.html という名前の html ファイルを含むプロジェクトをアップロードするようにユーザーに依頼しています。私は目的のためにコードイグナイターを使用しています。

アップロードプロセスを完了し、テーブルに情報を書き込んでいますが、ファイルのアップロードが完了したときにリンクを提供する方法に行き詰まっています...つまり、次のようなアップロードコントローラーがあります:

<?php class Main extends CI_Controller { 
  //{construct and all the parts} 
//upload function
function site_pages(){
 $this->load->view('header'); $this->load->view('nav'); $this->load->view('test.html');
      }
function do_upload(){
  .....code for file upload....
...update the database with the folder_id...
 }

ただし、これが完了したら、ユーザーへのリンク、つまりフォームのリンクを提供する必要があります

   <a href="<?php echo base_url();?>/main/site_pages/folder_id/test.html" >

このフォームでこの ID を生成する方法と、コントローラの特定のビューに test.html ファイルをロードする方法に行き詰まっています。

4

1 に答える 1

1

この目的のためにコントローラーを作成し、そのコントローラーを使用してアップロードされた html ファイルを読み取ることができます。ファイルを読み取ったら、コントローラー内から出力できます

ファイル名を ID にマップし、この ID を使用して各ファイルを識別することができます。html ファイルの名前を form.html から 2335332.html に変更し、後でこの ID をパラメーターとして使用して、ディレクトリからファイルを読み取ることができます。

ファイルを読み取る方法は次のとおりです。

// segment 3 will have parameter passed: 2335332
$file_name=$this->uri->segment(3)."html";

// you should check in this point weather this file exists.

$this->load->helper(‘file’);

//read a file
$data = read_file('./path_to/to/'.$file_name.'.html');
// do javascript/php/other cleanup on $data

この時点で、HTMLコードがあり、それを出力できます

$this->output->set_output($data); 

ただし、ユーザーがシステムを爆発させる可能性があるため、アップロードされた html ファイルの javascript / php コードをクリーンアップする必要があることを警告する必要があります。

幸運を。

編集

これを理解できると思いますが、お知らせするために、次のようにユーザーにリンクを提供します

<a href="<?php echo base_url();?>user/site_pages/2335332">Link to your page</a>

コードがコントローラーの site_pages() 関数内にあると仮定します: user.

于 2013-03-25T04:52:21.080 に答える