Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数据库参考图像上载存储了错误的文件名_Php_Codeigniter - Fatal编程技术网

Php 数据库参考图像上载存储了错误的文件名

Php 数据库参考图像上载存储了错误的文件名,php,codeigniter,Php,Codeigniter,我在自学codeigniter,所以我使用图像上传类将名称存储在SQL中,并将图像存储在服务器的文件夹中。从服务器调用名称时,将从文件中显示该名称 这很好,但我对覆盖图像很好奇,所以我查看了关于上传文件的Codeigner文档,它们有一个加密文件功能。这将解决覆盖问题,因为我使用了它,所以存储在数据库中的文件名是原始文件,而存储在服务器上我的文件夹中的图像有一个加密的文件名,因此照片没有显示 我已经阅读了codeigniter的文档,尝试加载另一个文件名变量等等。我每次也尝试初始化配置 库上载的

我在自学codeigniter,所以我使用图像上传类将名称存储在SQL中,并将图像存储在服务器的文件夹中。从服务器调用名称时,将从文件中显示该名称

这很好,但我对覆盖图像很好奇,所以我查看了关于上传文件的Codeigner文档,它们有一个加密文件功能。这将解决覆盖问题,因为我使用了它,所以存储在数据库中的文件名是原始文件,而存储在服务器上我的文件夹中的图像有一个加密的文件名,因此照片没有显示

我已经阅读了codeigniter的文档,尝试加载另一个文件名变量等等。我每次也尝试初始化配置

库上载的控制器是自动的

if($this->form_validation->run()=== FALSE)  {

$this->load->view('templates/header');
$this->load->view('posts/create', $data);
$this->load->view('templates/footer');
}
else{
        //Upload image

$config['upload_path'] = 'assets/images/posts';
$config['allowed_types']        = 'gif|jpg|png';
$config['encrypt_name']         = TRUE; //TURN ON
$config['max_size']             = 0;
$config['max_width']            = 0;
$config['max_height']           = 0;


$this->upload->initialize($config);



if(!$this->upload->do_upload('userfile')){
$errors = array('error'=>$this->upload->display_errors());
$post_image = 'noimage.jpg';

}else {
$data = array('upload_data' =>$this->upload->data());
$post_image = $_FILES['userfile']['name'];

}

   $this->Post_Model->create_post($post_image);
    redirect('http://localhost/CI/');
}

}
模型

public function create_post($post_image){

$slug = url_title($this->input->post('title'));

$data=array('title' => $this->input->post('title'),
            'slug' => $slug,
            'body' => $this->input->post('body'),
            'category_id' => $this->input->post('category_id'),
            'post_image' =>$post_image

);
形式

“>

首先,添加以下配置代码行以避免覆盖
$config['overwrite']=false

其次,为
max\u size
max\u width
max\u height
指定实际值,而不是零

$config['max_size']     = 1000;
$config['max_width']    = 430;
$config['max_height']   = 430;
$config['overwrite']    = false;
在上传文件的地方做一些更改

if(!$this->upload->do_upload('userfile')){
  $errors = array('error'=>$this->upload->display_errors());
  $post_image = 'noimage.jpg';
}else {
  $data = $this->upload->data();
  $post_image = $data['file_name'];

}

你的目标是什么?上传相同的图像,但使用不同的名称?你是否将图像路径存储在数据库中,以便稍后与新闻文章一起检索?@Vickel我希望能够存储图像而不会覆盖相同的图像。我希望能够将该文件作为博客文章或用户档案照片检索。此工作ked,我认为从我的文件中删除数组修复了我以前遇到的问题。因此,现在加密文件可以工作,并在两个位置保存了正确的图像名称。谢谢。
if(!$this->upload->do_upload('userfile')){
  $errors = array('error'=>$this->upload->display_errors());
  $post_image = 'noimage.jpg';
}else {
  $data = $this->upload->data();
  $post_image = $data['file_name'];

}