首页 > 解决方案 > 多次上传有时无法成功上传

问题描述

我有上传多个文件的功能,但有时文件未上传,但路径已成功添加到数据库。我不确定问题是什么。我使用函数“times()”使其独一无二这是问题的根源吗?

我已经对其进行了测试并且它可以成功运行,但是当它实现时有时文件没有成功上传

if ($_FILES["lampiran"]["name"] != NULL) {

    $config = array();
    $ext = array();
    $records = array();

    $file_name = "Plan_".time();
    $files = $_FILES['lampiran'];
    $config['upload_path'] = "./uploads/Planning/attachment";
    $config['allowed_types'] = '*';

    foreach ($_FILES['lampiran']['name'] as $key => $value) {
        $ext[]= pathinfo($_FILES['lampiran']['name'][$key], PATHINFO_EXTENSION);
    }

    $cpt = count ($_FILES['lampiran']['tmp_name']);
        for($i=0; $i<$cpt; $i++){


        $_FILES['lampiran']['name']= $file_name.$i.'.'.$ext[$i];
        $_FILES['lampiran']['type']= $files['type'][$i];
        $_FILES['lampiran']['tmp_name']= $files['tmp_name'][$i];
        $_FILES['lampiran']['error']= $files['error'][$i];
        $_FILES['lampiran']['size']= $files['size'][$i];

        $records[] = $config['upload_path'].'/'.$_FILES['lampiran']['name'];

        $this->upload->initialize($config);
        if ( ! $this->upload->do_upload('lampiran'))
        {
            $error = array('error' => $this->upload->display_errors());
            print_r($error);

                        // $this->load->view('upload_form', $error);
        }

    }

    $pile = implode(";", $records);

    } else {
        $pile = NULL;
    }

标签: phpcodeigniter

解决方案


在 else 条件下使用 $records 也会产生错误数组,比如

if ( ! $this->upload->do_upload('lampiran'))
{
    $error[] = $this->upload->display_errors();
}else{
    $upload_data = $this->upload->data();
    $records[] = $config['upload_path'].'/'.$upload_data['file_name'];
}

在这里,您将获得 $error 中的所有错误以及记录中上传的文件。


推荐阅读