使用codeigniter上传图像时遇到困难,它一直说我没有选择要上传的文件。
这是我的代码
function do_upload()
{
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'jpg|png';
$config['max_size'] = '3000';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->load->library('upload', $config);
if (!$this->upload->do_upload()){
echo $this->upload->display_errors();
}else{
echo $this->upload->data();
}
}
它甚至不会将图像发送到目录。
试试这个功能:
function upload_done() {
$config['overwrite'] = TRUE;
$config['encrypt_name'] = FALSE;
$config['remove_spaces'] = TRUE;
$config['upload_path'] = '/var/www/uploadfiles/'; // use an absolute path
$config['allowed_types'] = 'jpg|png';
$config['max_size'] = '0';
if ( ! is_dir($config['upload_path']) ) die("THE UPLOAD DIRECTORY DOES NOT EXIST");
$this->load->library('upload',$config);
if ( ! $this->upload->do_upload() )
{
echo "UPLOAD ERROR ! ".$this->upload->display_errors();
} else {
echo "THE IMAGE HAS BEEN UPLOADED : "; var_dump( $this->upload->data() );
}
}
确保你的html如下所示。
<input type="file" name="userfile" size="20" />
Codeigniter的上传库假定名称为“userfile”
您需要将调用更改为do_upload(),具体取决于您为表单输入提供的名称。假设您的HTML中包含以下代码:
<input type="file" name="image" />
你需要改变:
$this->upload->do_upload()
至
$this->upload->do_upload('image')
默认情况下,CodeIgniter假定名称为“userfile”。