当上传图片时,上传路径在codeigniter中无效

问题描述 投票:0回答:3

我正在尝试使上传的图像更加生动。当我尝试上传时,返回失败。我把var_dump放进代码以显示错误时它显示为false,它返回:

“上载路径似乎无效”

我一直在寻找解决方案,但没有发现任何问题。有人可以帮我发现错误吗?

这是我的控制器:

 public function saveReimburse()
{
    validate_submitted_data(array(
        'nama' => 'required',
        'category_reimburse_id' => 'required',
        'amount' => 'required|numeric',
        'date_reimburse' => 'required',
        // 'photo' => 'required'
    ));
    // data
    $data = [
        'nama' => $this->input->post('nama'),
        'category_reimburse_id' => $this->input->post('category_reimburse_id'),
        'amount' => $this->input->post('amount'),
        'date_reimburse' => $this->input->post('date_reimburse'),
        'photo' => $_FILES['photo'],
        // 'status'=> $this->input->post("PENDING"),
        // 'nama' => $this->input->post('nama'),
    ];


    // condition
    $date = date('Y-m-d');
    $date = strtotime($date);
    $date = strtotime('-7 day', $date);

    if ($data['date_reimburse'] < date('Y-m-d', $date)) {
        echo json_encode(array('succes' => FALSE, 'message' => 'Max Reimburse was 1 week ago'));
    } else {
        // var_dump($data);
        // exit;
        if ($data['photo'] = "") {
        } else {
            $config = [
                'upload_path' => is_dir('assets/reimburse/') . 'assets/reimburse/',
                'allowed_types' => 'jpg|png|gif',
                'overwrite' => TRUE
            ];
            $this->load->library('upload', $config);
            $upload = $this->upload->do_upload('photo');

            var_dump($config);
            print_r($this->upload->display_errors());exit;

            var_dump($upload);exit;
            if (!$upload) {
                json_encode(array('success' => FALSE, 'message' => 'Failed Upload'));
                redirect('Reimburse/index', 'refresh');
            } else {
                $this->upload->data('file_name');
                $save = $this->reimburseModel->saveReimburse('reimburse', $data);
                var_dump($data);exit;
                if (!$save) {
                    echo json_encode(array('success' => FALSE, 'message' => 'Failed to reccord'));
                } else {
                    redirect('Reimburse/index', 'refresh');
                    echo json_encode(array('success' => TRUE, 'message' => 'Reimburse Success'));
                }
            }
        }
    }
}
php codeigniter uploading
3个回答
0
投票
更改此行
'upload_path' => is_dir('assets/reimburse/') . 'assets/reimburse/',

进入此
'upload_path' => './assets/reimburse/',

0
投票
检查此输出
var_dump(is_dir(./assets/reimburse));

如果为假,则文件夹的物理路径必定有问题


0
投票
$ base_path = $ this-> config-> item('base_path');

然后使用$ base_path作为项目文件夹的根目录,您可以从项目文件夹访问任何文件夹来上传图像。

例如$ base_path。'/'。'upload /';

© www.soinside.com 2019 - 2024. All rights reserved.