脚本宝典收集整理的这篇文章主要介绍了php – 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 – Codeigniter缩略图图像路径无法存储在MySql中全部内容,希望文章能够帮你解决php – Codeigniter缩略图图像路径无法存储在MySql中所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。