首页 > 解决方案 > 如何使用 Codeigniter 取消链​​接文件?

问题描述

我想替换文件,但是在我尝试文件没有被替换但这里我的文件没有更新之后我想删除在我的本地主机中找到的文件。谁能帮帮我我的控制器

public function updatesp2d_action() 
{
    $config = array(
    'upload_path'=>'./assets/datasp2d/',
    'allowed_types'=>'gif|jpg|png|jpeg|rar|pdf|',
    'max_size'=>3000
    );

    $this->_rulessp2d();

    if ($this->form_validation->run() == FALSE) {
        $this->update($this->input->post('id_sp2d', TRUE));
    } else {
        $data = array(
    'id_satker' => $this->input->post('id_satker',TRUE),
    'bulan' => $this->input->post('bulan',TRUE),
    'tahun' => $this->input->post('tahun',TRUE),
    'dokumen_pendukung' => $this->input->post('dokumen_pendukung',TRUE),
    'nomial' => $this->input->post('nomial',TRUE),
    ); 

   $this->load->library('upload', $config);

            if ( ! $this->upload->do_upload('dokumen_pendukung'))
            {
                    $error = array('error' => $this->upload->display_errors());

                    echo "<script type='text/javascript'> alert('file yg anda masukan tidak sesuai'); </script>";
                    $this->updatesp2d();
            }
            else
            {
                if(file_exists($data['dokumen_pendukung']=$path.'./assets/datasp2d/'.$file_name)){
                    unlink($data['dokumen_pendukung']=$path.'./assets/datasp2d/'.$file_name);
                }
                $upload_data = $this->upload->data();
                $data['dokumen_pendukung'] = $upload_data['file_name'];
            }
            $this->Sp2d_model->update($this->input->post('id_sp2d', TRUE), $data);
                redirect(site_url('User/sp2d'));

    }
}

标签: codeignitercodeigniter-3unlink

解决方案


你正在做正确的 unlink() 函数是正确的。您只需要提供文件的完整路径而不是使用 $path 这是您的取消链接代码行

 unlink($data['dokumen_pendukung']=$path.'./assets/datasp2d/'.$file_name);

$path 具有完整的 URL 路径,其中包含 unlink() 函数不支持的 HTTP 或 https。

如果您的文件位于根目录中,例如

appliction
system
assets

然后你提供这样的

 unlink($data['dokumen_pendukung']='assets/datasp2d/'.$file_name);

推荐阅读