2015-10-20 97 views
0

我想使用codeigniter將文件上傳到本地文件夾,生成的表單和文件輸入字段有多個,這些字段有自己的ID,當用戶單擊任何一個時,特定的字段必須從ajax傳遞給控制器​​,然後通過附加該id來創建其名稱(例如,「input_image」+1將是input_image1,現在我必須從控制器上傳它,我的代碼如下:創建動態表單時無法在Codeigniter中上傳文件

查看

<script type="text/javascript"> 
function sendVideoData(frm_id) 
{ 

    var data = new FormData(document.getElementById("post_video_"+frm_id)); 

    // make the AJAX request 
    jQuery.ajax({ 
     type: "POST", 
     url: "<?php echo base_url(); ?>"+"dashboard/do_upload", 
     data: data+'&form_id='+frm_id, 
     mimeType:"multipart/form-data", 
     contentType: false, 
     cache: false, 
     processData:false, 
     dataType: 'json', 
     success: function (data) { 
      alert(data); 
     }, 

    }); 

    return false; 
} 
</script> 
<?php for($i=0;$i<=10 (or it can be more); $i++) 
    { 
<form name="post_video" id="post_video_<?=$row1['id']?>" method="post" onsubmit="return sendVideoData(<?=$row1['id']?>)">   
    <input type="file" name="save_movie_<?=$row1['id']?>" id="movie_<?=$row1['id']?>" /> 
    <input name="type_lecture_id" class="get_lecture_id" id="get_lecture_id_<?=$row1['id']?>" value="<?=$row1['id']?>" type="hidden"/> 
    <input type="button" class="postbtn" id="submit_movie_<?=$row1['id']?>" value="Upload Video File"/> 
</form> 
    } 

控制器:

function do_upload() 
    { 
    $formid=$_POST['form_id']; 
    $file_name = 'save_movie_'.$formid; 
    $config['upload_path'] = './uploads/'; 
    $config['allowed_types'] = 'gif|jpg|png|doc|txt'; 
    $config['max_size'] = 1024 * 8; 
    $config['encrypt_name'] = FALSE; 
    $this->upload->do_upload($file_name); 
    $this->load->library('upload', $config); 
    } 

上傳文件夾在根目錄

回答

0

控制器中使用AJAX獲取文件名後做這樣的

 public function file_upload(){ 
       $formid=$_POST['form_id']; 
       $file_name = 'save_movie_'.$formid; 
       $config['upload_path'] = './uploads/'; 
    $config['allowed_types'] = 'gif|jpg|png|doc|txt'; 
    $config['max_size'] = 1024 * 8; 
    $config['encrypt_name'] = FALSE; 
    $this->upload->do_upload($file_name) 
    $this->load->library('upload', $config); 
} 

這將多個單工作上傳更多閱讀http://w3code.in/2015/09/upload-file-using-codeigniter/

+0

感謝里奇,但我必須一次上傳一個文件。唯一的問題是,在屏幕上有很多字段上傳文件,但使用不同的ID,作爲我的問題中的HTML部分。 – user3653474

+0

內容正在動態生成。 – user3653474

+0

以何種格式獲取控制器中的文件名? – Ricky

0

試試這個,

if (empty($_FILES['imagefile']['name'][0])) {   
      return FALSE; 
     } 
+0

請解釋它爲什麼可行。 –