CodeIgniter 4:上传文件

CodeIgniter 4 : Upload File

我在使用 CodeIgniter 4 上传表单中的文件时遇到问题,我找不到问题所在。你能帮我吗?文件名没问题,问题是它没有在指定目录中移动文件,因为我得到这个错误:Call to a member function move() on null。 WRITEPATH 的值为:C:\xampp\htdocs\myproject\writable\

我上传的视图部分如下所示:

<div class="card-body">
    <label for="exampleInputFile">Fisier</label>
    <div class="form-group">
        <div class="input-group">
            <div class="custom-file">
                <input type="file" class="custom-file-input" name="customFile" id="customFile" required>
                <label class="custom-file-label" for="exampleInputFile">Alege Fisierul</label>
            </div>
        </div>
    </div>
</div>

我尝试将文件移动到特定文件夹的控制器功能部分如下所示:

$img = $this->request->getFile('customFile');
$img->move(WRITEPATH . 'uploads');

我用这个取文件名:$this->request->getVar('customFile')

谢谢!

控制器中像这样...

$config['upload_path'] = './upload/painting/';
    $config['allowed_types'] = 'jpg|png|jpeg'; // here you want to define file type
    $config['max_width'] = '250';
    $config['max_height'] = '300';
    $config['encrypt_name'] = TRUE;
    $this->load->library('upload', $config);
    //  $this->upload->do_upload('profile_pic');
        if ($this->upload->do_upload('ptn_url')) {
          $data = array('upload_data' => $this->upload->data());
    //    print_r($data);
          $_POST['ptn_url'] = "upload/painting/" . $data['upload_data']['file_name'];
          $_POST['user_id'] = $this->session->user_data['user_id'];

in routes.php 文件位于配置文件夹 您需要定义商店图片的路径 像这样...

$route['upload-image'] = 'user';
$route['store-image'] = 'user/add';
$route['painting/(:num)'] = 'painting';

有关文件上传的更多参考资料Visit CodeIgniter 3 File Upload

希望对你有所帮助...

谢谢...

这在 Codeigniter 4 中有效:

 $file = $this->request->getFile('file');

        if (!$file->isValid()) {
            return $this->fail($file->getErrorString());
        }

        $file->move(ROOTPATH . 'public\uploads\documents');

        $name = $file->getName();

谢谢!