我的控制器:
public function addgalleryProcess()
{
$height = $this->input->POST('height');
$width = $this->input->POST('width');
$config['upload_path'] = './assets/images/gallery';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '1000';
$config['max_width'] = '';
$config['max_height'] = '';
$config['overwrite'] = TRUE;
$config['remove_spaces'] = TRUE;
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload())
{
$error = array('error' => $this->upload->display_errors());
$this->load->view('admin/addgallery', $error);
}
else
{
$upload_data = $this->upload->data();
//resize:
$config1['image_library'] = 'gd2';
$config1['source_image'] = $upload_data['full_path'];
$config1['maintain_ratio'] = TRUE;
$config1['create_thumb'] = TRUE;
$config1['width'] = $width;
$config1['height'] = $height;
$this->load->library('image_lib', $config1);
$this->image_lib->resize();
$this->adminModel->galleryimages($upload_data);
$this->load->view('admin/homeView');
}
我的模特:
public function galleryimages($image_data = array())
{
$data = array(
'image' => $image_data['file_name'],
);
$this->db->insert('gallery', $data);
}
此处图片已正确上传并正常工作,但调整大小无效。我必须显示具有指定宽度和高度的已调整大小的图像。我是新来的。 提前感谢。
答案 0 :(得分:0)
试试这个:
对于图像调整大小我建议使用“TimThumb”TimThumb - PHP Image Resizer
https://www.binarymoon.co.uk/projects/timthumb/
我在我的项目中使用了timthumb,如
<img src="<?php echo base_url('assets/common/timthumb') . '/timthumb.php?src=./assets/myuploads/myimagename.jpg&w=245&h=164'; ?>" alt="">
我已将timthumb.php放在“assets”文件夹中,并将我的图片上传到“assets / myuploads”文件夹
答案 1 :(得分:0)
不要分散注意力,如果您想在通过网络上传之前调整图像大小,可以将其javascript到画布,然后将画布图像发送到toDataURL。这有助于防止有人上传大量内容,并且您的网络和服务器都在努力。 这也取决于您的客户端是否在HTML客户端中。 以下文章可以帮助解决这个问题: https://stackoverflow.com/a/10334170/811827