【发布时间】:2013-05-16 10:47:57
【问题描述】:
我有一个上传表单,可以根据需要添加任意数量的文件。但是,当我开始尝试上传文件时,出现错误。
控制器
$this->load->library('upload');
$error = "";
$file = "";
$this->total_count_of_files = count($_FILES['user_certificates']['name']);
print_r($_FILES['user_certificates']['name']);
for($i=0; $i<$this->total_count_of_files; $i++)
{
$_FILES['user_certificates']['name'] = $_FILES['user_certificates']['name'][$i];
$_FILES['user_certificates']['type'] = $_FILES['user_certificates']['type'][$i];
$_FILES['user_certificates']['tmp_name'] = $_FILES['user_certificates']['tmp_name'][$i];
$_FILES['user_certificates']['error'] = $_FILES['user_certificates']['error'][$i];
$_FILES['user_certificates']['size'] = $_FILES['user_certificates']['size'][$i];
$config['encrypt_name'] = TRUE;
$config['file_name'] = $_FILES['user_certificates']['name'];
$config['upload_path'] = './certificate_files/';
$config['allowed_types'] = 'txt|pdf|doc|docx';
$config['max_size'] = 0;
$this->upload->initialize($config);
if (!$this->upload->do_upload())
{
$status = 'error';
$msg = $this->upload->display_errors();
}
else
{
$data = $this->upload->data();
$file = $data['raw_name'] . $data['file_ext'];
}
if($file)
{
$status = "success";
$msg = "Image successfully uploaded";
}
else
{
$status = "error";
$msg = "Something went wrong when saving the image, please try again.";
}
}
echo json_encode(array('status' => $status, 'msg' => $msg));
exit();
print_r($_FILES['user_certificates']['name'])) 显示了我添加的文件:
Array ( [0] => license.txt [1] => license.txt )
我完全不知道如何让上传工作。有什么想法吗?
提前干杯!
编辑
如果我改变这个:
if (!$this->upload->do_upload())
到这里:
if (!$this->upload->do_upload('user_certificates'))
它有效,但仅适用于一个文件,由于某种原因它似乎没有再次循环
【问题讨论】:
-
你得到了什么错误???
-
文件没有上传到任何文件夹,并且 'echo json_encode(array('status' => $status, 'msg' => $msg));'显示 '{"status":"error","msg":"保存文件时出错,请重试。"}'。因此错误源于配置初始化后。有什么想法吗?
-
您的文件似乎正在上传,但您从哪里设置
$data['raw_name']的值???
标签: php file codeigniter upload