PHP一次只从多个文件上载请求中获取一个文件

时间:2014-10-31 12:32:48

标签: php ajax codeigniter jquery-file-upload multiple-file-upload

所以我正在尝试上传多个文件

通过 codeigniter 中的SESSION变量控制用户上传的文件,方法是将会话变量设置为每次上传文件时保存文件名并将其与以前的文件名合并(如果可用),从而创建用户在单独会话中上传的文件数组。

这就是我所拥有的......

if (!$this->upload->do_upload("user_file")) {
           //I do stuff that handles the failure
        }else{
                $data = $this->upload->data();
                //
                //Grab the TEMP file
                $array[] = array('filename'=>$data['file_name']);

                //Add the temp file to the session

                if($this->session->userdata('uploaded_files')){
                    $temp_file = $this->session->userdata('uploaded_files');
                    $this->session->set_userdata('uploaded_files',array_merge($array,$temp_file));

                }else{
                    //no need to merge since its the first one
                    $this->session->set_userdata('uploaded_files',$array);
                }
        } 

我的问题是当PHP同时获得多个请求时,它只处理队列中的第一个请求 Only takes one in the finish line

当我一次给它一个请求时,它需要所有这些 Takes all of them

所以我不保证文件会在不同的时间完成上传,错误...我如何让我的数组上传所有文件名而不考虑完成时间,也许使用session不是一个好方法?

PS:在服务器端,我的所有文件都包含那些没有进入上传文件数组的文件

1 个答案:

答案 0 :(得分:0)

您可以使用'name'索引从$ _FILES变量中检索文件名(例如$ _FILES ['myfile1'] ['name'])。