0

ファイルから画像またはビデオのいずれかをアップロードできます。イメージの構成ファイルを次のように設定しました。

        $config['upload_path'] = './docs/';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = '200';
        $config['max_width']  = '250';
        $config['max_height']  = '250';
        $config['file_name']  = md5(rand().time());

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

ただし、ビデオをアップロードする場合、はるかに大きなサイズのファイル ( video ) をアップロードできるようにする必要があるため、この構成は機能しません。送信後にアップロードしたもの ( img/video ) を見つけ、それに基づいて構成ファイルを有効にする方法はありますか?

ビデオの構成は次のとおりです。

            $configVideo['upload_path'] = './docs/';
            $configVideo['max_size'] = '50240';
            $configVideo['allowed_types'] = 'avi|flv|wmv|mp3|wma';
            $configVideo['overwrite'] = FALSE;
            $configVideo['remove_spaces'] = TRUE;
            $video_name = $date.$_FILES['video']['name'];
            $configVideo['file_name'] = $video_name;

            $this->load->library('upload', $configVideo);
            $this->upload->initialize($configVideo);
4

1 に答える 1

1

$_FILESを使用して、最初にタイプを調べることができます。 テストされていない

$type = $_FILES['userfile']['type'];
switch ($type) {
   case 'gif':
   case 'jpg':
   case 'png':
      // do img config setup
      break;
   case 'avi':
   case 'flv':
   case 'wmv':
   case 'mp3':
   case 'wma':
      // do video config
      break;
}

または、フォーム内のファイルに別の名前を使用している場合は、試してみませんか。

更新しました

$config['upload_path'] = './docs/';
if (is_array($_FILES) && isset($_FILES['image']['name'])) {
    // is an image
    $config['upload_path'] = './docs/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '200';
    $config['max_width']  = '250';
    $config['max_height']  = '250';
    $config['file_name']  = md5(rand().time());
} elseif (is_array($_FILES) && isset($_FILES['video']['name'])) {
    // is a video
    $config['max_size'] = '50240';
    $config['allowed_types'] = 'avi|flv|wmv|mp3|wma';
    $config['overwrite'] = FALSE;
    $config['remove_spaces'] = TRUE;
    $video_name = $date.$_FILES['video']['name'];
    $config['file_name'] = $video_name;
}

$this->load->library('upload', $config);
$this->upload->initialize($config);
于 2012-06-12T07:24:30.477 に答える