0

作業中の Codeigniter アプリで画像をアップロードする際に問題があります。チュートリアルで示されているように、コードは私のPC(ubuntu)で問題なく機能していました。しかし、(centos) サーバーでこれを試していると、「アップロードするファイルが選択されていません。」というエラーが表示されます。

参考までに、ここにコードを貼り付けます。

コントローラ - Upload1.php

 <?php

 class Upload1 extends CI_Controller {

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

    function index()
    {
            $this->load->view('upload_form1', 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_form1', $error);
            }
            else
            {
                    $data = array('upload_data' => $this->upload->data());

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

フォーム - upload_form1.php

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

 <?php echo $error;?>

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

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

 <br /><br />

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

 </form>

 </body>
 </html>

成功ページ - upload_success1.php

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

 <h3>Your file was successfully uploaded!</h3>

 <ul>
 <?php foreach ($upload_data as $item => $value):?>
 <li><?php echo $item;?>: <?php echo $value;?></li>
 <?php endforeach; ?>
 </ul>

 <p><?php echo anchor('upload1', 'Upload Another File!'); ?></p>

 </body>
 </html>

何が問題なのですか?「アップロード」ディレクトリを 777 に設定しています。それが理由である可能性は低いです。同様の問題に対していくつかの解決策も試しましたが、うまくいきません。明らかな何かを見逃していますか?

バージョン: サーバーの場合 - PHP 5.3.13 (cli) My PC - PHP 5.3.3 。

Codeigniter は、ローカル マシンとリモート マシンで同じです。つまり、2.1.3 です。

あなたの提案に感謝します!!

どうもありがとう

4

2 に答える 2

0

あなたのコードに基づいて、アップロード構成で有効かどうかにかかわらず、送信された入力を検証するためのフォーム検証があるかどうかわかりません。最初にすべきこと: アップロードしようとしているファイルがアップロード構成に適しているかどうかを確認します。CI のアップロード クラスは、無効な入力フォームからのエラーをカバーしていないと思います。CMIIW。

于 2013-04-05T03:14:25.087 に答える