Codeigniter:无法上传图片(您没有 select 要上传的文件)
Codeigniter: unable to upload image (You did not select a file to upload)
当我尝试将图像上传到我的上传文件夹时,出现以下错误:
Array ( [error] =>
You did not select a file to upload.)
我的看法:
<form action="<?=base_url('create_public_profile_job') ?>" class="create-profile-form" method="POST">
<input type="file" name="userfile" size="20000" />
<button type="submit" class="create-profile-button">Submit</button>
</form>
我的控制器
public function create_public_profile_job()
{
if(isset($_POST['userfile']))
{
$this->User_model->do_upload($_POST['userfile']);
}
}
我的模型
public function do_upload($userfile)
{
$this->load->helper('form');
$this->load->helper('url');
$config['upload_path'] = 'assets/uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = 1000000;
$config['max_width'] = 10240000;
$config['max_height'] = 7680000;
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload($userfile))
{
$error = array('error' => $this->upload->display_errors());
print_r($userfile);
print_r($error);
}
else
{
$data = array('upload_data' => $this->upload->data());
print_r($data);
}
}
模型部分来自 Codeigniter 用户指南https://codeigniter.com/userguide3/libraries/file_uploading.html
不太清楚问题出在哪里,因为我把图片传遍了所有函数
将视图更改为
<form action="<?=base_url('create_public_profile_job') ?>" class="create-
profile-form" method="POST" enctype="multipart/form-data">
<input type="file" name="userfile" size="20000" />
<button type="submit" class="create-profile-button">Submit</button>
</form>
您必须在表单标签中添加enctype="multipart/form-data"
才能通过表单上传数据。
所以我想出了我的问题所在。或者更好的问题。
我的第一个问题是我必须添加到我的表单标签中:enctype="multipart/form-data"
正如其他人已经在评论中指出的那样
我的第二个问题是我必须在 autoload.php 文件中添加 $autoload['libraries'] = array('database',.., 'upload');
最后但同样重要的是,我将 $this->load->library('upload', $config);
更改为 $this->upload->initialize($config);
配置无法正确初始化,所以这解决了我的最后一个问题。
当我尝试将图像上传到我的上传文件夹时,出现以下错误:
Array ( [error] => You did not select a file to upload.)
我的看法:
<form action="<?=base_url('create_public_profile_job') ?>" class="create-profile-form" method="POST">
<input type="file" name="userfile" size="20000" />
<button type="submit" class="create-profile-button">Submit</button>
</form>
我的控制器
public function create_public_profile_job()
{
if(isset($_POST['userfile']))
{
$this->User_model->do_upload($_POST['userfile']);
}
}
我的模型
public function do_upload($userfile)
{
$this->load->helper('form');
$this->load->helper('url');
$config['upload_path'] = 'assets/uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = 1000000;
$config['max_width'] = 10240000;
$config['max_height'] = 7680000;
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload($userfile))
{
$error = array('error' => $this->upload->display_errors());
print_r($userfile);
print_r($error);
}
else
{
$data = array('upload_data' => $this->upload->data());
print_r($data);
}
}
模型部分来自 Codeigniter 用户指南https://codeigniter.com/userguide3/libraries/file_uploading.html
不太清楚问题出在哪里,因为我把图片传遍了所有函数
将视图更改为
<form action="<?=base_url('create_public_profile_job') ?>" class="create-
profile-form" method="POST" enctype="multipart/form-data">
<input type="file" name="userfile" size="20000" />
<button type="submit" class="create-profile-button">Submit</button>
</form>
您必须在表单标签中添加enctype="multipart/form-data"
才能通过表单上传数据。
所以我想出了我的问题所在。或者更好的问题。
我的第一个问题是我必须添加到我的表单标签中:enctype="multipart/form-data"
正如其他人已经在评论中指出的那样
我的第二个问题是我必须在 autoload.php 文件中添加 $autoload['libraries'] = array('database',.., 'upload');
最后但同样重要的是,我将 $this->load->library('upload', $config);
更改为 $this->upload->initialize($config);
配置无法正确初始化,所以这解决了我的最后一个问题。