我想在继续将数据上传到数据库之前先预览文件,是否可以从输入文件中预览所选文件?或者我正在考虑先将它存储到temp var中,然后再将其上传到数据库中。
有人可以帮助我吗?我要上传的文件是txt和xls文件 这里有当前的代码:
查看
<form id="upload" name="upload" action="<?php echo base_url(); ?>index.php/welcome/upgen048" method="POST" class="form-horizontal" enctype="multipart/form-data" onsubmit="return verify_upload()" >
<div class="col-lg-4"></div>
<input type="file" name="uploadData" id="uploadData" style=""/>
<br />
<div class="text-center">
<button type="file" id="submit" value="Submit" class="btn btn-success"><medium><i class="fa fa-upload fa-3x" ></i></br> UPLOAD </medium></button>
<!-- Button trigger modal -->
<button type="button" class="btn btn-success" data-toggle="modal" data-target="#myModal" <medium><i class="fa fa-upload fa-3x" ></i></br> PREVIEW </medium>
</button>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content"><!-- modal container -->
<div class="modal-header"><!-- header -->
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Preview</h4>
</div>
<div class="modal-body"><!-- body -->
PREVIEW IN TABLE HERE
</div>
<div class="modal-footer"> <!-- footer -->
<button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
<!-- <button type="button" class="btn btn-primary">Save changes</button> -->
</div>
</div>
</div>
</div>
<!-- MODALS -->
</div>
</form>
控制器
function upgen048()
{
$this->file_path = realpath(navi_ups.'/gen048');
$config['upload_path'] = $this->file_path;
$config['max_size'] = 0;
$config['allowed_types'] = 'txt';
//$config['overwrite'] = TRUE;
$this->load->library('upload');
$this->upload->initialize($config);
$this->upload->set_allowed_types('*');
if ( !$this->upload->do_upload('uploadData'))
{
$data['error'] = $this->upload->display_errors();
$data['main_content'] = 'gen048';
$this->load->view('includes/template',$data);
}
else { //else, set the success message
$data = array('msg' => "Upload success!");
$data['main_content'] = 'gen048';
$this->load->view('includes/template',$data);
$data['upload_data'] = $this->upload->data();
}
模型
function srch_gen048()
{
$sql =" select * from gen_048";
$query = $this->db->query($sql);
return($query->num_rows() > 0) ? $query->result(): NULL;
}
答案 0 :(得分:1)
一个过程是为待处理文件添加一个表。上传会将详细信息插入待处理表中。编辑/更新挂起表中的文件内容。当您完成提交按钮后,会将待处理表格中的行插入gen_048
&amp;删除挂起表中的行。
我建议添加一个mysql事件来清除待处理表中超过时间限制的任何条目,因为某人没有发布待处理文件并且也不会丢弃它。
答案 1 :(得分:0)
在使用支持的浏览器上的FileReader对象将事件发送到服务器之前,可以使用Javascript预览所选的表单文件:Preview an image before it is uploaded
上面的答案是针对图像文件,但您可以使用类似window.open()的方法在新标签/窗口上预览文件,而不是将其分配给图像标记。