2010-12-11 20 views
0

オーディオファイルと画像を同じ形式でアップロードし、その名前をデータベースに保存します...ファイルの1つのみがアップロードされます最初の行の) 他ここでは許されないタイプCodeigniter複数の異なるファイルタイプのアップロード

の誤差を与える私の図である。

 <?php echo form_open_multipart('index.php/ena_dyo_edit');?> 
     Title:<input type='text' name="title" size="40" id="title" /> 
     <p>Title Photo:<input type="file" name="title_photo" size="20" id="title_photo" /></p> 
     <p>Body:<textarea name="body" rows = "10" cols="60" id="body"></textarea><p> 
     <p>Soundfile:<input type="file" name="soundfile" size="20" id="soundfile" /></p> 
     <p>Author:<input type="text" name="author" size="40" id="author"/></p> 
     <p><input type="submit" value="Submit New Post"/></p> 
     <?php echo form_close(); ?> 

、ここでは、私のモデル関数である:

function soundfile_upload($userfile = 'userfile'){ 
    //uploads a sound file 

    $config = array(
      'upload_path' => './uploads/soundfiles/', 
      'allowed_types' => 'mp3|wav|aif|aiff|ogg', 
      'max_size' => '256000' //250 MB max size 
     ); 


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

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

      $this->load->view('upload_error', $error); 
     } 

     else{ 

      $soundfile_data = $this->upload->data(); 
      $entry_title = $this->input->post('title'); //using the name of the post to relate the audio file 
      $entry_id = $this->db->insert_id(); //the id of our last entry! 

      //create array to load to database 
      $insert_data = array(
       'soundfile' => $soundfile_data['file_name'] 
       ); 

      //$this->db->where('id', $entry_id); 
      $this->db->update('entries', $insert_data,array('id' => $entry_id)); //load array to database 
     } 



    } 

    function title_photo_upload($userfile = 'userfile'){ 
    //uploads a photo for a post title 

    $config = array(
      'upload_path' => './uploads/title_photos/', 
      'allowed_types' => 'jpg|jpeg|gif|png', 
      'max_size' => '256000' //250 MB max size 
     ); 


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

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

      $this->load->view('upload_error', $error); 
     } 

     else{ 

      $soundfile_data = $this->upload->data(); 
      $entry_id = $this->db->insert_id(); //the id of our last entry! 

      //create array to load to database 
      $insert_data = array(
       'title_photo' => $soundfile_data['file_name'] 
       ); 


      $this->db->update('entries', $insert_data,array('id' => $entry_id)); //load picture where id = entry_id 



    } 
} 

答えて

2

Accordi CIドキュメントの場合、configの 'allowed_types'部分は、ファイル拡張子ではなく、パイプで区切られたMIMEタイプのリストです。拡張子がMIMEタイプと同じでない場合は、おそらく許容されない型のエラーを生成するファイル拡張子を使用しているように見えます。たとえば、私のmp3ファイルは、MIMEタイプ「audio/mpeg」を持つ傾向があります。したがって、あなたのallowed_typesの設定は次のようになります:

'allowed_types' => 'audo/mpeg|audio/x-wav|audio/x-aiff|application/ogg' 
+0

お返事ありがとうございます。 – rabidmachine9

関連する問題