首页 > 解决方案 > Codeigniter库文件上传图片文件上传表单不起作用,url变成重复

问题描述

我有一个详细的codeigniter项目代码如下:

config.php 文件:

    <?php
defined('BASEPATH') OR exit('No direct script access allowed');
$config['base_url'] = 'http://localhost/cicrud/codepolitan/Blog';

使用文件夹路径 controllers/codepolitan/Blog.php

 <?php

class Blog extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->model('codepolitan/Blog_model');
        $this->load->database();
        $this->load->helper(array('form','url'));
    }


    //Tambah
    public function add()
    {
        if ($this->input->post()) {
            $data['title'] = $this->input->post('judul');
            $data['content'] = $this->input->post('konten');
            $data['url'] = $this->input->post('link');

            $config['upload_path']          = './uploads/';
            $config['allowed_types']        = 'gif|jpg|png';
            $config['max_size']             = 100;
            $config['max_width']            = 1024;
            $config['max_height']           = 768;

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

            if ( ! $this->upload->do_upload('cover'))
            {
                echo $this->upload->display_errors();
            }
            else
            {
                print_r($this->upload->data());
                exit;
            }
            print_r($data);
            // var_dump($data);
            $this->Blog_model->adddata($data);
        }
    

        $this->load->view('/codepolitan/form_add');
        }
    
    }

显示表单中的文件。使用文件夹路径 view/codepolitan/form_add.php

    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<?php echo form_open_multipart();?>
    <div>
        <label>Judul</label>
        <input type="text" name="judul">
    </div>
    <div>
        <label>URL</label>
        <input type="text" name="link">
    </div>
    <div>
        <label>Konten</label>
        <textarea name="konten" cols="30" rows="10"></textarea>
    </div>
    <div>
        <label>Upload Cover</label>
        <?php echo form_upload('content', null, 'class="form-control"')?>;
    </div>
    <button type="submit">Simpan Artikel</button>
</form>
</body>
</html>

运行时,选择 jpg 或 png 文件格式并在 url 中添加要复制的代码,如下所示 http://localhost/cicrud/codepolitan/Blog/codpolitan/Blog/add

如果,请在控制器“Blog.php”中添加功能代码“ add()”,出现错误消息“您没有选择要上传的文件”。而之前我选择了 jpg 或 png 文件格式。

请解释为什么会这样?上面代码的解决方案是如何完成的?

标签: phpcodeigniterfile-uploadcodeigniter-3multipartform-data

解决方案


推荐阅读