用ThinkPHP 编写上传图片 JPG转PDF代码
好的,以下是使用ThinkPHP编写上传图片和将JPG转PDF的代码示例。
首先需要在config.php文件中配置上传图片的相关参数:
// 配置上传路径
'upload_path' => './uploads/',
// 允许上传的文件类型
'allow_types' => 'jpg,jpeg,png',
// 上传图片的大小限制,单位:KB
'upload_size' => 2048,
接下来,在控制器中实现上传图片的方法:
public function uploadImage()
{
$file = request()->file('image');
$info = $file->validate([
'size' => config('upload_size') * 1024,
'ext' => config('allow_types')
])->move(config('upload_path'));
if ($info) {
// 上传成功,返回图片路径
return json(['code' => 1, 'msg' => '上传成功', 'data' => '/uploads/' . $info->getSaveName()]);
} else {
// 上传失败,返回错误信息
return json(['code' => 0, 'msg' => $file->getError()]);
}
}
以上代码中,$file
变量获取到的是上传的图片文件,通过validate
方法对上传的图片进行校验,如果校验通过,则调用move
方法将图片移动到指定的上传路径。最后,将上传成功后的图片路径返回给前端。
接下来,我们来看如何将JPG图片转换为PDF格式。需要安装ImageMagick扩展,然后在控制器中实现转换方法:
use think\facade\Filesystem;
use \Imagick;
public function convertJpgToPdf($filename)
{
$img_path = './uploads/' . $filename;
$pdf_path = './uploads/' . str_replace('.jpg', '.pdf', $filename);
$imagick = new Imagick();
$imagick->readImage($img_path);
$imagick->setImageFormat('pdf');
$pdf_data = $imagick->getImageBlob();
Filesystem::put($pdf_path, $pdf_data);
return $pdf_path;
}
以上代码中,$filename
参数为需要转换的JPG图片文件名,通过readImage
方法读取图片文件,然后调用setImageFormat
方法设置输出格式为PDF,最后通过getImageBlob
方法获取PDF数据并保存到指定路径。
希望以上代码对您有所帮助!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY