php - 上传文件并将路径保存到codeigniter中的mysql

标签 php mysql codeigniter file-upload

我有一个实现上传文件的字段表单。我怎样才能上传文件并将路径名保存到数据库?我需要它,因为我也必须制作一个下载链接。现在,我已经成功上传文件,但它仍然在数据库中保存了上传文件的名称,而不是上传文件的路径。 也许我是否制作下载链接来下载已上传的文件? 谢谢。我真的很感激。

这是我的 Controller :

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Upload extends CI_Controller {

 public function __construct()
    {
        parent::__construct();
        $this->load->helper(array('form', 'url'));
        $this->load->model('file');
    }

 public function index()
 {
  $this->load->view('v_upload');
 }

 function do_upload() {
        $config['upload_path'] = './uploads/';
        $config['allowed_types'] = 'jpeg|png|gif|jpg|txt|docs|xls';
        $config['max_size'] = '2000';
        $config['max_width']  = '2000';
        $config['max_height']  = '2000';

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

        $file1=($_FILES['file1']['name']);
        $file2=($_FILES['file2']['name']);
        $file3=($_FILES['file3']['name']);


        $file = array (
        'rab' => $file1,
        'kkp' => $file2,
        'rcps' => $file3);

        foreach ($_FILES as $key => $value) {
            if (!empty($value['tmp_name'])) {

                if ( ! $this->upload->do_upload($key)) {
                    $error = array('error' => $this->upload->display_errors());
                    //failed display the errors
                } else {
                    //upload success
                }

            }
        }
        if ($this->upload->do_upload($key)) {
        $this->file->input_data($file,'upload');
        }
 }
}

这是我的观点:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<!DOCTYPE html>
<HTML>
<body>
<?php echo form_open_multipart('upload/do_upload');?>
<input type="file" name="file1" />
<input type="file" name="file2"/>
<input type="file" name="file3"/>
</div>
<br /><br/>
<input type="submit" value="upload" name="upload" />
</form>
</body>
</HTML>

这是我的模型:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class File extends CI_Model{

    function input_data($data,$table){
        $this->db->insert($table,$data);
    }
}

最佳答案

尝试: $file1=($config['upload_path'].$_FILES['file1']['name']);

对于您上传的每个文件。

关于php - 上传文件并将路径保存到codeigniter中的mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39801663/

相关文章:

php - 根据最后一条记录结果创建表闭包

php - 通过 SSL 交换信息时是否需要加密数据?

mysql - 如何去除表中的重复记录

php - 如何在 php codeigniter 中提醒或警告用户 session 即将过期

php - PHP 中的多级 JSON 数组

php - 通过追加更新 MYSQL 表行列总和

MySQL 查询以计算值

MySql Update on Duplicate (Unique) Key 错误

php - 如何使用 Codeigniter 删除上传的文件?

php - Codeigniter 传递数据给 Controller 查看