php – Codeigniter缩略图图像路径无法存储在MySql中
我正在尝试使用Codeigniter创建一个简单的应用程序,我需要在
MySql数据库中存储缩略图图像路径.图像以及缩略图版本在上传文件夹中正确上传,我可以在上传时将图像路径存储在我的数据库中,但我无法将缩略图图像路径存储在数据库中.我在控制器中试过这个:
$thumbnail= $this->resize($data['upload_data']['full_path'],$data['upload_data'] ['file_name']); $thumbnail_path = './uploads/'. $thumbnail; $newRow = array( "title" => $this->input->post('title'),"img_path" => $imgpath,"thumbnail_path" => $thumbnail_path,"post_body" => $this->input->post('post_body') ) 但它只在我的表格的thumbnail_path列中存储“./uploads/”,而不是实际的缩略图路径.我期望它存储类似“./uploads/Lighthouse_thumb.jpg”的东西.我无法弄清楚如何获取缩略图图像的路径以将它们存储在数据库中.这是我的完整上传控制器: class Upload extends CI_Controller { function __construct() { parent::__construct(); $this->load->helper('form'); } function index() { $this->load->view('upload_form',array('error'=>'')); } function do_upload() { $config['upload_path'] = './uploads/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = '1000'; $config['max_width'] = '1024'; $config['max_height'] = '768'; $this->load->library('upload',$config); if (!$this->upload->do_upload()) { $error = array('error' => $this->upload->display_errors()); $this->load->view('upload_form',$error); } else { $image_data = $this->upload->data(); $imgpath = './uploads/' . $image_data['file_name']; $data = array('upload_data'=>$this->upload->data()); $thumbnail= $this->resize($data['upload_data']['full_path'],$data['upload_data']['file_name']); $thumbnail_path = './uploads/'. $thumbnail; $newRow = array( "title" => $this->input->post('title'),"post_body" => $this->input->post('post_body') ); $this->load->model('postimage_path'); $this->postimage_path->insert($newRow); $this->load->view('upload_success',$data); } } function resize($path,$file) { $config['image_library'] = 'gd2'; $config['source_image'] = $path; $config['create_thumb'] = TRUE; $config['maintian_ratio'] = TRUE; $config['width'] = 100; $config['height'] = 100; $config['new_image'] = './uploads/' . $file; $this->load->library('image_lib',$config); $this->image_lib->resize(); } } 解决方法$thumbnail_path = './uploads/'. $thumbnail; 所以thumbnail_path只包含“./uploads/”:告诉我们$thumbnail是false(或者是null或空字符串等),这意味着调用resize的返回值是错误的 – 似乎你希望它返回文件名. function resize($path,$file) { $config['image_library'] = 'gd2'; $config['source_image'] = $path; $config['create_thumb'] = TRUE; $config['maintian_ratio'] = TRUE; $config['width'] = 100; $config['height'] = 100; $config['new_image'] = './uploads/' . $file; $this->load->library('image_lib',$config); $this->image_lib->resize(); } resize什么都不返回!并且你没有为$thumbnail_path分配任何内容.那是你的问题. 你似乎只是复制了the CodeIgniter docs的代码.来自所说的文件(强调我的):
所以你有它!如果您的文件名是$data [‘upload_data’] [‘file_name’],那么您的缩略图将是$data [‘upload_data’] [‘file_name’]. “_拇指”.看看你的文件系统,文件应该在那里供你查看. 所以要解决你的问题,这应该可以解决问题: $pathinfo = pathinfo($data['upload_data']['file_name']); $thumbnail_path = './uploads/'. $data['upload_data']['file_name'] . "_thumb" . $pathinfo['extension']; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- php – 如何从字符串形成两个数组,用“,”分隔后跟 – ?
- 使用PHP静态变量当缓存的方法
- php – multidimensional数组使用foreach返回错误的结果
- [LeetCode] 030. Substring with Concatenation of All Wor
- cakephp将数组记录为var_dump
- PHP开发工具ZendStudio下Xdebug工具使用说明详解
- php – Facebook API退出我的应用程序,但不是Facebook
- PHP通过插入mysql数据来实现多机互锁实例
- php循环输出数据库内容的代码
- PHP获取redis里不存在的6位随机数应用示例【设置24小时过时