在进入数据库之前,将输入文件中的文件存储到temp-var中


Storing files from input file filed into temp var before going into the database

在将文件上传到数据库之前,我想先预览文件,是否可以从输入文件文件中预览所选文件?或者我想先把它存储到一个临时变量中,然后再把它上传到数据库中。

有人能帮我吗?我要上传的文件是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">&times;</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;
}

一个过程是为挂起的文件添加一个表。上传会将详细信息插入挂起的表中。编辑/更新挂起表中的文件内容。完成后,提交按钮将把挂起表中的行插入gen_048&删除挂起表中的行。

我建议添加一个mysql事件来清除挂起表中超过时间限制的任何条目,以防有人没有发布挂起的文件,也没有丢弃它。

在事件被发送到服务器之前,可以使用Javascript在支持的浏览器上使用FileReader对象预览所选的表单文件:在上传之前预览图像

上面的答案是针对图像文件的,但您可以使用类似window.open()的方法在新的选项卡/窗口上预览文件,而不是将其分配给图像标记。