【问题标题】:Failed Upload Files Codeigniter上传文件失败 Codeigniter
【发布时间】:2020-06-12 04:41:01
【问题描述】:

我正在尝试使用上传文件制作 crud 但不知何故它一直返回 FALSE 但我不知道我的代码有什么问题如果我在条件上传之前 var_dump($data) 它会显示我的图像的名称但如果我var_dump($uploads) 一直显示为假

这是我的控制器

public function saveReimburse()
{
    validate_submitted_data(array(
        'nama' => 'required',
        'category_reimburse_id' => 'required',
        'amount' => 'required|numeric',
        'date_reimburse' => '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'],
    ];

    // 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 {
        if ($data['photo'] = "") {
        } else {
            $config = [
                'upload_path' => './assets/reimburse',
                'allowed_types' => 'jpg|png|gif',
                'overwrite' => TRUE
            ];
            $this->load->library('upload', $config);
            $upload = $this->upload->do_upload('photo');

            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'));
                }
            }
        }
    }
}

这是我的模特

function saveReimburse($table,$data)
{
    $this->load->database('default', TRUE);
    if(!$this->db->insert($table,$data))
        return FALSE;
    $data["id"] = $this->db->insert_id();

    return (object) $data;
} 

这是我的输入代码

<?php echo form_open_multipart(get_uri("Reimburses/saveReimburse"), array("id" => "formReimburse", "class" => "general-form", "role" => "form")); ?>
<div id="expense-dropzone" class="post-dropzone">
    <div class="modal-body clearfix">
        <!-- <form action =" " method='POST'> -->
            <div class="form-group">
                <label for="Nama">Nama</label>
                <input type="text" class="form-control" id="nama" name="nama" placeholder="Nama">
            </div>
            <div class="form-group">
                <label for="category_reimburse_id">Category</label>
                <select class="form-control form-control-lg" name="category_reimburse_id">
                <option value ="">-</option>
                <?php 
                foreach($category as $ct){?>
                    <option value ="<?php echo $ct->id ?>"><?php echo $ct->category ?></option>
                    <?php }?>
                </select>
            </div>
            <div class="form-group">
                <label for="amount">Amount</label>
                <input type="text" class="form-control" id="amount" name="amount" placeholder="Amount">
            </div>
            <div class="form-group">
                <label for="date_reimburse">Date</label>
                <input type="date" class="form-control" id="date_reimburse" name="date_reimburse" value='<?php echo date('Y-m-d') ?>'>
            </div>
            <div class="form-group">
                <div class="form-group">
                    <label for="photo">Input Photo</label>
                    <input type="file" class="form-control-file" id="photo" name ="photo">
                </div>
            </div>
            <div class="float-right">
                <button type="cancel" class="btn btn-warning ">Cancel</button>
                <button type="submit" class="btn btn-primary ">Submit</button>
            </div>
        <!-- </form> -->
    </div>
</div>
<?php echo form_close() ?>

【问题讨论】:

  • 您在if ($data['photo'] = "") { 的条件下将“”分配给$data['photo'],而不是检查它是否为空!使用=== 进行检查。

标签: php codeigniter file-upload crud image-upload


【解决方案1】:

使用错误函数检查错误

print_r($this->upload->display_errors());

【讨论】:

  • 上传路径似乎无效。但我的路是真的
  • 检查文件夹权限是否可写
【解决方案2】:

尝试添加以下上传路径

'upload_path' => '../assets/reimburse';

【讨论】:

  • 试试这个
  • 修改上传文件路径权限为777
【解决方案3】:

在refund后加一个/,比如“./assets/reimburse/”可以解决问题,可能是根目录下assets文件夹

【讨论】:

    猜你喜欢
    • 2013-05-02
    • 1970-01-01
    • 2013-10-08
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 2012-03-18
    相关资源
    最近更新 更多