用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数据并保存到指定路径。

希望以上代码对您有所帮助!

posted @   冰蓝世界  阅读(448)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示