1

初めてcodeigniterを使用し、ここで説明するアップロードファイルクラスを試してみます。画像を選択してフォームを送信すると、エラー404が表示されます。これは、何らかの理由でアドレスバーに表示されるURLが次のようになっているためです。

http://mydomain.com/index.php/www.mydomain.com/index.php/do_upload

繰り返します!それが404の問題を引き起こしていますが、なぜそれが起こっているのか分かりませんか?

コントローラに使用しているコードは次のとおりです。

<?php

class Upload extends CI_Controller {

    function __construct()
    {
        parent::__construct();
        $this->load->helper(array('form', 'url'));
        //form_upload('userfile'); 
    }

    function index()
    {
        $this->load->view('upload_form', array('error' => ' ' ));
    }

    function do_upload()
    {
        $config['upload_path'] = '/uploads/';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = '100';
        $config['max_width']  = '1024';
        $config['max_height']  = '768';

        $this->load->library('upload', $config);

        if ( ! $this->upload->do_upload())
        {
            $error = array('error' => $this->upload->display_errors());

            $this->load->view('upload_form', $error);
        }
        else
        {
            $data = array('upload_data' => $this->upload->data());

            $this->load->view('upload_success', $data);
        }
    }
}
?>

サポートに感謝します:)

編集:フォームを送信:

<html>
<head>
<title>Upload Form</title>
</head>
<body>

<?php echo $error;?>

<?php echo form_open_multipart('upload/do_upload');?>

<input type="file" name="userfile" size="20" />

<br /><br />

<input type="submit" value="upload" />

</form>

</body>
</html>
4

3 に答える 3

1

この問題の答えは、構成ファイルのベースURLのドメインアドレスの前にhttp://を追加することでした。それで問題は解決しました。みんな、ありがとう

于 2012-09-10T15:08:27.187 に答える
0

バグはおそらくアップロード フォームにあります。アクションが相対 URL でない場合、または で始まるhttp://場合、たとえば、アクションとして「www.mydomain.com/index.php/do_upload」を指定した場合、その動作が得られます。

修正するには、先頭に「http://」を追加するか、相対 URL を作成してください。

于 2012-09-10T14:51:58.447 に答える
0

これを試して:

<?php echo form_open_multipart('/upload/do_upload');?>

「アップロード」の前の「/」ではありません

于 2012-09-10T15:04:50.493 に答える