我是CodeIgniter
的新手,想先调整图像大小,然后再使用move_uploaded_file
保存到数据库和本地存储中,我可以使用以下代码调整大小,但是如何访问调整大小的图像并使用move_uploaded_file
在PHP上上传
$uploaddir = './images/post/';
$uploadfile = $uploaddir . basename($value1."-".$date."-".$_FILES['file']['name']);
$config['image_library'] = 'gd2';
$config['source_image'] = $uploadfile;
$config['create_thumb'] = TRUE;
$config['width'] = 350;
$config['height'] = 1;
$config['maintain_ratio'] = TRUE;
$config['master_dim'] = 'width';
$this->image_lib->clear();
$this->image_lib->initialize($config);
$this->image_lib->resize();
任何建议都会很棒。
答案 0 :(得分:1)
用户提交文件时(表单必须具有enctype="multipart/form-data"
属性才能正常工作):
upload_tmp_dir
$_FILE
数组中:原始名称,mime类型,临时名称(documentation)因此,如果要仅存储调整大小的图像,则可以使用$_FILES['file']['tmp_name']
属性中的绝对路径直接处理临时文件。
答案 1 :(得分:1)
您应该了解,本质上您是在将文件上传到临时目录,然后使用本地存储的文件来生成调整大小的图像。
因此,无论好坏,您的映像已在服务器上。因此:
您的操作顺序有误。您需要使用上载库首先将图像带到服务器上,然后可以使用该文件位置而不是临时名称来调整图像的大小。使用Codeigniters映像库,您可以创建它,以便调整大小后的映像会覆盖原始映像。为此,您可以更改$config['create_thumb'] = false;
并调整大小,以原始/原始图像为目标。
此处提供有关该设置的更多信息:https://www.codeigniter.com/userguide3/libraries/image_lib.html#CI_Image_lib::resize
如果您真的要走自己的路(这不好,因为您没有上载库提供的保护),将$config['create_thumb']
设为false,就像我之前说过的那样,或者注意,拇指文件应该是临时名称+ _thumb
+任何扩展名。
在此处查看拇指标记:https://www.codeigniter.com/userguide3/libraries/image_lib.html#preferences