0

アプリケーションに Codeigniter クラスを実装しようとすると問題が発生します。問題は、フォームを送信すると、実行される関数が指定したフォルダーにファイルを保存せず、エラー メッセージをスローしないことです。私のコードは次のとおりです。

意見:

<?php echo form_open_multipart('requests/submit_candidate'); ?>
<table>
        <tr>
        <td><label for="text">Upload CV</label></td>
        <td><input type="file" name="file"></textarea></td>
    </tr>
    <tr>
        <td><label for="text">Extra Information</label></td>
        <td><textarea name="extra_info"></textarea></td>
    </tr>       
</table>
<input type="submit" name="submit" value="Submit" />
</form>

コントローラ:

public function submit_candidate($slug)
    {
        $this->load->library('upload');

        $config =  array(
              'upload_path'     => dirname($_SERVER["SCRIPT_FILENAME"])."/uploads/",
              'upload_url'      => base_url()."uploads/",
              'allowed_types'   => "gif|jpg|png|jpeg|pdf|doc|xml",
              'overwrite'       => TRUE,
              'max_size'        => "1000KB",
              'max_height'      => "768",
              'max_width'       => "1024"  
            );

        if($this->upload->do_upload($config))
        {
            echo "file upload success";
        }
        else
        {
           echo "file upload failed";
        }
}

誰でも助けてもらえますか?

どうもありがとう、

SR

4

1 に答える 1

0

うまくいく場合は、これを試してください:

1) HTML

<td><input type="file" name="file"></td>

2)コントローラー

public function submit_candidate($slug)
{
    $this->load->library('upload');

    $config =  array(
          'upload_path'     => "./uploads/",
          //'upload_url'      => base_url()."uploads/",
          'allowed_types'   => "gif|jpg|png|jpeg|pdf|doc|xml",
          'overwrite'       => TRUE,
          'max_size'        => 1000,
          'max_height'      => 768,
          'max_width'       => 1024  
        );
    $this->upload->initialize( $config );
    if(!$this->upload->do_upload('file'))  // "file" is the name of the element default it's "userfile"
    {
        print_r( $this->upload->display_errors() );die; //display the error
    }
    else
    {
       $data    = $this->upload->data();
       print_r( $data );die;                            //file uploaded data
    }
}

1) 関数内で、フォーム ファイル要素の名前を指定する必要があります (「ファイル」)
2) 無効な構成変数「upload_url」も使用しています。
3) アップロード ライブラリの設定を初期化する必要があります。
こちら(ファイル アップロードのドキュメント)が参考になります。

于 2014-06-25T13:53:44.933 に答える