1

たとえば、ファイル foo.png をアップロードする場合、アップロード コントローラで文字列 "foo.png" を取得するにはどうすればよいですか?

コントローラーのコードは次のとおりです。

<?php

class Upload extends CI_Controller {

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

    function do_upload($folder)
    {
        $config['upload_path'] = './userdata/'. $folder . '/';
        $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());
            echo $this->upload->display_errors();
        }
        else
        {
            $data = array('upload_data' => $this->upload->data());
            echo "<p>File sucesfully uploaded</p>";

            $filename = // How do I get the filename here

        }
    }
}
?>

$filenameアップロードしたファイルのファイル名を設定するにはどうすればよいですか?

4

3 に答える 3

4

公式CIマニュアルから:

$this->upload->data()
This is a helper function that returns an array containing all of the data related to the file you uploaded. Here is the array prototype:
Array
(
    [file_name]    => mypic.jpg
    [file_type]    => image/jpeg
    [file_path]    => /path/to/your/upload/
    [full_path]    => /path/to/your/upload/jpg.jpg
    [raw_name]     => mypic
    [orig_name]    => mypic.jpg
    [client_name]  => mypic.jpg
    [file_ext]     => .jpg
    [file_size]    => 22.2
    [is_image]     => 1
    [image_width]  => 800
    [image_height] => 600
    [image_type]   => jpeg
    [image_size_str] => width="800" height="200"
)

したがって、あなたの場合、関数$dataの結果を保持する変数には、$this->upload->data()アップロードしたファイルについて必要なすべての情報が含まれている必要があります。

そして、具体的$data['upload_data']['file_name']にはあなたが探しているものです。

于 2013-03-16T21:15:06.747 に答える
2

これを試して!

$data = $this->upload->data();
echo $data['file_name'];
于 2013-05-08T03:58:28.347 に答える
1
echo $data['raw_name'].$data['file_ext'];

トリックを行う必要があります

たとえば、画像をアップロードします

if($this->upload->do_upload('upload_data')) {
$data = $this->upload->data();
echo $data['raw_name'].$data['file_ext'];
}
于 2013-03-16T21:12:00.717 に答える