0

codeigniter に次の php があります。

$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '4000';
$config['max_width']  = '3000';
$config['max_height']  = '3000';

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

ただし、ファイルがアップロードされると、$image_data['file_path']は /home/public_html/sitename/uploads として返されます。www.domain.com/uploads にアクセスするために必要です。なぜこれが起こっているのかについて何か考えはありますか?

そこに str 置換をハードコードする必要はありません。これが重複していないことを願っています。

4

2 に答える 2

2

アップロード関数によって返されるデータは、アプリケーションの DOCUMENT ROOT に従っています。file_name を取得し、それに応じて base_url() を使用してこれを行うことができます

例。

$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '4000';
$config['max_width']  = '3000';
$config['max_height']  = '3000';

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

$image_data_file = $image_data["file_name"];
$image_file_url = base_url()."/uploads/".$image_data_file;

お役に立てれば。

于 2013-06-11T12:37:47.183 に答える
0

codeigniter ドキュメントでは、$image['file_path'] がファイルへの絶対サーバー パスを返すことが指定されています。

あるいは、あなたがすることができます

$upload_path = 'uploads/';
$config['upload_path'] = './'. $upload_path;
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '4000';
$config['max_width']  = '3000';
$config['max_height']  = '3000';

$this->load->library('upload', $config);
$image_data = $this->upload->do_upload();
$dir_url = base_url($upload_path);

base_url 関数を使用するには、codeigniter にurl ヘルパーを含める必要があることに注意してください。

于 2013-06-11T12:41:02.843 に答える