2016-04-27 9 views
0

私は、データベース に、ビュー側から私は音楽の入力タイプのファイルのためのaddmoreボタンを持ってアップロードする音楽ファイルを持っていると私は似ている曲の名前を得た。その後CodeIgniterの中のアレイから音楽をアップロードする方法

music1.mp3,music2.mp3,music3.mp3 

私はコントローラファイル上でこれを爆発させます。 わかりませんが、これは正しいですか?

$expaudio = explode(',',$audio); 
$audioCount = count($expaudio); 
if($audioCount == 0){ $audiolist = $audio; } 
else{ $audiolist = $expaudio; } 


for($i=0; $i<$audioCount; $i++){ 
      //******************************* UPLOAD MUSIC ********************************// 
      $config['allowed_types'] = 'avi|mpeg|mp3|mp4|3gp|wmv'; //video and audio extension 
      $config['max_size'] = '40000000'; 
      $config['overwrite'] = FALSE; 
      $config['remove_spaces'] = TRUE; 
      //$video_name = random_string('numeric', 5); 
      $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; 
      $randomString = ''; 
      for ($i = 0; $i < 10; $i++) { 
       $randomString .= $characters[rand(0, strlen($characters) - 1)]; 
      } 
      $video_name = $randomString; 

      $config['file_name'] = $video_name; 
      $config['upload_path'] = 'Users/'.$data['loginuserpage'].'/music/'.$project_url.'/audio'; 

      //$config['allowed_types'] = 'gif|jpg|jpeg|png|doc|docx|ppt|pptx|pdf|txt|avi|mpeg|mp3|mp4|3gp|wmv'; // Image , video and audio 
      $this->load->library('upload', $config); 

      if (!$this->upload->do_upload($audiolist[$i])) 
      { 
       $error = array('error' => $this->upload->display_errors()); 
       $vid_url = ''; 
       print_r($this->upload->display_errors()); 
      } 
      else 
      { 
       $upload_data = $this->upload->data(); 
       $aud_name = $upload_data['file_name']; 
       $aud_type = $upload_data['file_type']; 
       $aud_url = $baseurl.$config['upload_path']."/".$aud_name; 
      } 
      //******************************* UPLOAD MUSIC ********************************// 
     } 

私のAjaxはあなたが複数のファイルをアップロードするためのforループを使用する必要はありません

$("input[name='audio[]']").change(function() 
     { 
      var temp =[] 
      $("input[name='audio[]']").each(function(i, selected){ 
      texts = $(selected).val() 
       temp.push(texts); 

       var jcat1 = temp.join(","); 
       alert(jcat1); 
       $('#audioarr').val(jcat1); 
      }); 
     }); 
$('form#music').submit(function(e) 
     { 
      e.preventDefault(); 
      var form = $(this); 

      /*var purl = form.find('#project_url').val(); 
      if (purl.length < 8) { 
       $('p#purl').html('Please enter a url without space and specialchar'); 
       return false; 
      }*/ 

      var video = form.find('#video').val(); 
      var trailer = form.find('#trailer').val(); 

      dataString = $("form#music").serialize(); 
      $.ajax({ 
       url: '<?php echo base_url('video/creations/createmusic'); ?>', 
       type: "POST", 
       data: dataString, 
       data: new FormData(this), 
       contentType: false,  // The content type used when sending data to the server. 
       cache: false,    // To unable request pages to be cached 
       processData:false, 
       success: function(data) { $("#success").html(data); } 
      }); 
     }); 

答えて

0

を提出。 あなたは、単一のアレイ内のすべてのファイルの詳細情報を格納しているので、使用は

$this->upload->do_upload('audio'); // input file name 

を使用することができますあなたは

$data = $this->upload->data(); 

foreach($data as $audio) { 
    `// code goes here...` 
} 
+0

からアップロードされたファイルの詳細情報にアクセスすることができます大丈夫..ありがとうしかし、どのようにforeachの下のファイル名を取得することができます関数。投稿できますか? – shruthi

関連する問題