如何上传类型文件使用数据表codeigniter数据库
Posted
技术标签:
【中文标题】如何上传类型文件使用数据表codeigniter数据库【英文标题】:How to upload type file Using datatables codeigniter database 【发布时间】:2018-06-06 06:04:34 【问题描述】:我想把文件名放到db,然后把文件放到我的存储服务器上?
我的看法
<form method="post" id="add_form" class="form-horizontal form-label-left" action="<?php echo site_url('bunyi_pasal/save') ?>" enctype="multipart/form-data">
<div class="form-group">
<label for="file" class="col-sm-1 control-label"> File </label>
<div class="col-sm-1">
<input type="file" id="file_pasal" name="file_pasal" class="file file-loading">
</div>
</div>
<div class="col-xs-12 col-md-12 col-lg-12 " align="navbar-right">
<button type="submit" name="submit" class="btn btn-success btn-lg" style="width:50%">Save</button>
</div>
</form>
我的数据表
<script type="text/javascript">
$(document).ready(function ()
var save_method;
var del = $(this).data('delete');
$(".select2").select2(width: 'resolve', dropdownAutoWidth: true);
$('#date').daterangepicker(
singleDatePicker: true,
showDropdowns: true,
format: 'YYYY-MM-DD',
calender_style: "picker_2"
, function (start, end, label)
//console.log(start.toISOString(), end.toISOString(), label);
);
$('#add_form').bootstrapValidator(
feedbackIcons:
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
,
fields:
id_pasal:
validators:
notEmpty:
message: ' Data Pasal Not Empty'
,
,
point:
validators:
notEmpty:
message: ' Point Not Empty'
,
,
isi_bunyi_pasal:
validators:
notEmpty:
message: ' Bunyi Pasal Not Empty'
,
,
,
submitHandler: function (validator, form, submitButton)
$.post(form.attr('action'), form.serialize(), function (result)
// console.log(result);
//window.location.href = result.redirect;
if (result.retCode == 0)
new PNotify(
title: 'Success',
text: result.info,
type: 'success',
styling: 'bootstrap3'
);
setTimeout(function ()
location.reload(true);
, 1000);
else
new PNotify(
title: 'Response',
text: result.info,
type: 'error',
styling: 'bootstrap3'
);
, 'json');
);
);
</script>
我的控制器
public function __construct()
parent::__construct();
$this->load->model('General');
$this->load->helper(array('form', 'url'));
public function save()
$this->output->enable_profiler(TRUE);
$response = array();
if ($this->input->is_ajax_request())
$id_bunyi_pasal = $this->input->post('id_bunyi_pasal');
if (empty($id_bunyi_pasal))
if (!empty($_FILES['file_pasal']['name']))
//$config['upload_path'] = 'asset/data_pasal/';
$config['upload_path'] = UPLOAD_DIR . '/asset/data_pasal';
$config['allowed_types'] = 'doc|docx|pdf|jpg|jpeg';
$config['file_name'] = $_FILES['file_pasal']['name'];
//Load upload library and initialize configuration
$this->load->library('upload', $config);
$this->upload->initialize($config);
if ($this->upload->do_upload('file_pasal'))
$uploadData = $this->upload->data();
$file_pasal = $uploadData['file_name'];
else
$file_pasal = '';
else
$file_pasal = '';
$data_post = array(
'id_bunyi_pasal' => '',
'id_pasal' => $this->input->post('id_pasal'),
'point' => $this->input->post('point'),
'isi_bunyi_pasal' => trim($this->input->post('isi_bunyi_pasal')),
'file' => $file_pasal,
'keterangan' => $this->input->post('keterangan'),
);
$return_id = $this->general->save($data_post, "tb_bunyi_pasal");
$response['info'] = " Create Data Success ";
$response['retCode'] = 0; //Success
print_r($data_post);
exit(0);
echo json_encode($response);
else
exit('Access Denied');
inspect 的参数输出:
id_pasal:32 点:a isi_bunyi_pasal:测试上传 keterangan:测试上传 提交:
当我点击按钮保存时,没有文件与方法发布一起发送。
【问题讨论】:
见:***.com/questions/2320069/jquery-ajax-file-upload 您可能想要做的是使用预先存在的库,如 dropzone 或 bluemp,并在提交时附加您希望添加到插件的其他表单数据。 你能告诉我关于我的案例吗,因为这个案例有其他人的属性。该链接是关于案例的一个组成部分......请帮助我? 【参考方案1】:AJAX 默认不处理文件上传(至少没有帮助)。
你应该使用Dropzone。
配置它使其不自动处理队列autoProcessQueue: false
在文档中查找 sending
事件。您可以像这样附加表单值:
myDropzone.on("sending", function(file, xhr, formData)
formData.append("name", "somevalue");
formData.append("name2", "somevalue2");
);
或见:Adding more data to Dropzone.js post
一般来说:
-
如果通过,请进行验证...
初始化 dropzone 插件并触发上传
在发送事件中附加表单值
打印成功或错误消息(可以在后端使用 400 标头触发 dropzone 错误)
祝你好运!
【讨论】:
以上是关于如何上传类型文件使用数据表codeigniter数据库的主要内容,如果未能解决你的问题,请参考以下文章