6

フォームを使用して画像を自分のサイトにアップロードしようとしていますが、(データベースを停止するよりも)画像の場所をデータベースに保存する方がはるかに効率的です。

フォームに問題があり、どこに行けばいいのか本当にわかりません。

<?=form_open('bro/submit_new');?>
 //other form data
 Image: <input type="file" name="image" size="20" /> <br>
 <input type="submit" value="Submit" />
</form>

これで、フォーム自体は正常に機能します。問題は、画像をデータベースフィールド「image」(タイプTEXT)に保存しようとしていることです。ファイルを保存するように指示し、「画像」フィールドに保存するファイルの場所を指定する最も簡単な方法は何ですか?(コントローラーを介してファイルをアップロードする場所を指示します)。

ありがとう

編集:コントローラーコード(この部分):

function submit_new(){
    $config['upload_path'] = './images/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '2000';
    $config['max_width']  = '1024';
    $config['max_height']  = '768';     
    $this->load->library('upload', $config);

    $this->db->insert('post', $_POST);

    redirect('bro');
}
4

3 に答える 3

8

form_open()ではなくform_open_multipart()を使用する

于 2009-07-20T15:42:05.443 に答える
8

CodeIgniter のファイル アップロード クラスがこれを行います。ユーザーガイドのエントリは、私ができる限り説明しているので、そこを指摘します.

基本的に、そこにあるコントローラーを変更して、データベースにファイル URL を配置する場所を少し含めるだけで済みます。これは、 $this->upload->data() を使用して [full_path] を抽出することで簡単に実現できます。結果の配列から、データベース入力を処理するモデルに送信します。

于 2008-11-13T20:09:39.523 に答える