我正在尝试为我的用户导入个人资料图片并将其以blob格式插入数据库中。但是当我运行代码并选择图像时,我得到file_get_contents()不能为空错误

我已经尝试了其他帖子中与此问题相关的许多解决方案,但均无济于事。

控制器:

public function wijzigen()
{
    $foto = $this->input->post($_FILES['profielfoto']['tmp_name']);

    $fotoContent = addslashes(file_get_contents($foto));

    $id = $this->session->userdata('id');

    $gebruiker = new stdClass();
    $gebruiker->id = $id;
    $gebruiker->profileImage = $fotoContent;

    $this->load->model('gebruiker_model');
    $this->gebruiker_model->update($gebruiker);


模型:

    function update($gebruiker)
    {
        $this->db->where('id', $gebruiker->id);
        $this->db->update('gebruiker', $gebruiker);
    }


视图:

 <?php
    $attributes = array('name' => 'mijnFormulier', 'enctype'=>'multipart/form-data', 'method'=>'post', 'accept-charset'=>'utf-8');
    echo form_open('Home/wijzigen', $attributes);
    ?>
    <table>
        <tr>
            <td><?php echo form_label('Profiel Foto:', 'profielfoto'); ?></td>
            <td><input type="file" name="profielfoto" id="profielfoto" required accept=".png"/></td>
        </tr>
        <tr>
            <td></td>
            <td>
                <?php echo form_submit('knop', 'Wijzigen', 'class = "btn btn-login login-formcontrol"'); ?>
            </td>
        </tr>


    </table>
    <?php echo form_close(); ?>


错误:


Severity: Warning

Message: file_get_contents(): Filename cannot be empty

Filename: controllers/Home.php

Line Number: 147

Backtrace:

File: /home/arne/Desktop/WebApplication/CodeIgniter/application/controllers/Home.php
Line: 147
Function: file_get_contents

File: /home/arne/Desktop/WebApplication/CodeIgniter/index.php
Line: 315
Function: require_once

I except an image to be in my database but the post isn't working



谢谢,

最佳答案

$_FILES$_POST var是2种不同的东西。

$foto = $this->input->post($_FILES['profielfoto']['tmp_name']);


应该:

$foto = $_FILES['profielfoto']['tmp_name'];


并且请注意,这并不考虑错误,因此您当然应该检查一下。

10-05 20:35
查看更多