我想使用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);
}
上傳文件夾在根目錄
感謝里奇,但我必須一次上傳一個文件。唯一的問題是,在屏幕上有很多字段上傳文件,但使用不同的ID,作爲我的問題中的HTML部分。 – user3653474
內容正在動態生成。 – user3653474
以何種格式獲取控制器中的文件名? – Ricky