Php 在调用上载函数之前创建唯一ID,并始终为一个人传递该ID

Php 在调用上载函数之前创建唯一ID,并始终为一个人传递该ID,php,codeigniter,Php,Codeigniter,我有一个登记表,用户可以上传多个文件。他可以一次上传十个文件,一个一个上传。现在我想要的是在调用upload函数之前创建uniqueId,并将其传递给mkdir()的upload函数。 现在我正在上传函数中创建唯一的Id,但实际上我不想这样 <form target="upload_target" id="fileupload" method="post" action="<?php echo site_url('upload_file/upload_it'); ?>" en

我有一个登记表,用户可以上传多个文件。他可以一次上传十个文件,一个一个上传。现在我想要的是在调用upload函数之前创建
uniqueId
,并将其传递给
mkdir()
的upload函数。 现在我正在上传函数中创建唯一的Id,但实际上我不想这样

 <form target="upload_target" id="fileupload" method="post" action="<?php echo site_url('upload_file/upload_it'); ?>" enctype="multipart/form-data">

<div class="fileUpload btn btn-warning">
    <span>Browse</span>
    <input id="uploadBtn" type="file" multiple="multiple" name="files[]" class="upload" />
</div>
    <input id="uploadFile" style="width: 160px; margin-top: 30px;float: left;height: 35px;" placeholder="Choose File" disabled="disabled" />
    <button id="btnupload" style="padding: 4.5px; float:left;margin-top: 30px;border-radius: 0px;" disabled="disabled" type="submit" class="btn btn-primary btn-lg"><span class="glyphicon glyphicon-upload"></span></button>

</form> 


function upload_it()

{
    $this->load->helper('form');
    $uniqueID = uniqid(); 
    mkdir("application/uploads/".$uniqueID);

    $config['upload_path'] = 'application/uploads/'.$uniqueID;
    $config['allowed_types'] = '*';
    $this->load->library('upload', $config);
    $this->upload->initialize($config);
    $this->upload->set_allowed_types('*');

    $data['upload_data'] = '';
    if (!$this->upload->do_multi_upload('files')) {
        $data = array('msg' => $this->upload->display_errors());

    } 
    else
    {
          $data['upload_data'] = $this->upload->get_multi_upload_data();
    }
    $this->load->vars($data);

    $this->load->view('upload');
}

您可以在表单中调用
uniqid()
,比如
,但是如果用户浏览5个文件并上传,然后再次浏览并上传5个文件会怎么样。一旦我编辑了帖子,请查看表单。然后您必须生成唯一id并将其存储在会话中,如:
如果(!isset($\u session['uniqid]){$\u session{'uniqid']=uniqid();}
,上传函数中的行
$uniqueID=uniqid();
将变成
$uniqueID=$\u session['uniqid']
。现在,一旦用户上载了所有10个文件,然后销毁会话变量。将以隐藏形式隐藏输入字段
如果(!isset($会话['uniqid']]){$会话{'uniqid']=uniqid();}
?不客气。如果(!isset($会话['uniqid']]){$会话{'uniqid']=uniqid(),请编写
在页面顶部和隐藏字段中,使用
在控制器中的何处调用函数。很抱歉,我不明白。@BinteHava-编辑后,这是一个不同的问题。请查看Think different的评论,因为这是您正在寻找的答案。
$uniqueID = uniqid(); 
mkdir("application/uploads/".$uniqueID);

function upload_it($upload_path)

{
    $this->load->helper('form');

    $config['upload_path'] = $upload_path;
    $config['allowed_types'] = '*';
    $this->load->library('upload', $config);
    $this->upload->initialize($config);
    $this->upload->set_allowed_types('*');

    $data['upload_data'] = '';
    if (!$this->upload->do_multi_upload('files')) {
        $data = array('msg' => $this->upload->display_errors());

    } 
    else
    {
          $data['upload_data'] = $this->upload->get_multi_upload_data();
    }
    $this->load->vars($data);

    $this->load->view('upload');
}