【问题标题】:file name automatically change when i upload the file上传文件时文件名自动更改
【发布时间】:2015-06-19 05:21:59
【问题描述】:

我是 CodeIgniter 的新手,遇到以下问题。当我上传文件时,它已成功上传到我的本地文件夹,并且文件名保存到了数据库中。问题是,上传后文件名已更改。 例如: 文件名“截图图像 123.png”->“screenshot_image_123.png” 它只是将空格转换为下划线;仅当文件名有空格时才会出现此问题。除此问题外,所有其他文件都成功上传。以下是我在控制器页面上使用的代码:

public function upload_pic()
{
               $image_path = realpath(APPPATH . '../uploads');
               $config['upload_path'] = $image_path;
               $config['allowed_types'] =   "gif|jpg|jpeg|png";
               $config['file_name'] = $_FILES['file']['name']; 
               $config['encrypt_name'] = TRUE; 
               $config['overwrite'] = TRUE;
               $this->load->library('upload',$config);
               $this->upload->initialize($config);  
               if(!$this->upload->do_upload('file'))
               {
                        echo $this->upload->display_errors();
               }
               else
               {
                        $finfo=$this->upload->data();
                        $data['uploadInfo'] = $finfo;
               }
}

谁能帮帮我????

【问题讨论】:

  • 最好生成唯一的文件名并将其保存为文件名和数据库
  • codeigniter中是否有任何选项可以防止codeigniter自动更改文件名。??例如,我正在保存具有相同名称的任何 ID 的文件,并且希望将来两者都匹配,所以。

标签: file-upload codeigniter-2


【解决方案1】:

在保存文件名之前尝试生成一些独特的

$filename = $_FILES['file']['name'];
$ext = pathinfo($filename, PATHINFO_EXTENSION);

$filename = sha1_file($filename). md5(date('Y-m-d H:i:s:u')) . '.'. $ext; //not only this you can generate any format



$config['file_name'] = $filename; //Use this file name is db too  

【讨论】:

  • 嗨@vijay4vijju,它对我有用..感谢您的及时帮助。
  • 当我插入文件时它工作正常。但我无法编辑该文件。你能猜出来吗?
  • 我认为它应该适用于这两种情况。您遇到什么错误?你能发布编辑代码吗?
  • 公共函数 update(){$mdata['id']=$_POST['id']; $mdata['name']=$_POST['name']; $mdata['harddisk']=$_POST['harddisk']; $mdata['ram']=$_POST['ram']; $mdata['screen']=$_POST['screen']; $mdata['处理器']=$_POST['处理器']; $mdata['active']=$_POST['active']; $mdata['file']=$_POST['file']; $res=$this->user_model->update_info($mdata, $_POST['id']); if($res){header('location:'.base_url()."login/".$this->index()); }}
  • 插入“$mdata['file']=$_POST['file'];”再次,您应该按照与上述问题相同的步骤上传图片。你得到新的文件名,你应该更新那个文件名。或者,如果您想更新相同的文件名,请删除 "$mdata['file']=$_POST['file'];"排队试试。
猜你喜欢
  • 2013-07-10
  • 1970-01-01
  • 2016-05-28
  • 2021-12-27
  • 2013-02-14
  • 1970-01-01
  • 1970-01-01
  • 2012-05-13
  • 2013-11-07
相关资源
最近更新 更多