我在控制器功能中有以下代码(这是CI):
if(!empty($_FILES['filename']) && is_uploaded_file($_FILES['filename']['tmp_name'])) {
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '1000';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->load->library('upload', $config);
$this->upload->overwrite = true;
if ( ! $this->upload->do_upload('filename')){
$error = array('error' => $this->upload->display_errors());
var_dump($error);
exit;
}
else {
$this->upload->do_upload('filename');
$upload_info = $this->upload->data();
var_dump($upload_info);
exit;
}
}
这应该可以工作,它不返回任何错误,并在$upload_info
之前返回exit();
数组(此处退出以进行调试)。 $upload_info
数组表明该文件已传递到服务器上的正确路径。此文件夹上的文件夹权限设置为777。
但是,该文件不会出现在服务器上!任何人都可以在这里提出问题。所有正确的库也已加载。
答案 0 :(得分:0)
您要求$this->upload->do_upload('filename')
两次。
第一次在if
,然后第二次在else
- 分支。
您应该删除第二个$this->upload->do_upload('filename')
。
最终代码:
if ( ! $this->upload->do_upload('filename')){
$error = array('error' => $this->upload->display_errors());
var_dump($error);
exit;
}
else {
$upload_info = $this->upload->data();
var_dump($upload_info);
exit;
}