首页 > 编程语言 >用ThinkPHP 编写上传图片 JPG转PDF代码

用ThinkPHP 编写上传图片 JPG转PDF代码

时间:2023-03-17 23:14:33浏览次数:46  
标签:JPG file path ThinkPHP PDF 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数据并保存到指定路径。

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

标签:JPG,file,path,ThinkPHP,PDF,pdf,上传,图片
From: https://www.cnblogs.com/blansj/p/17228578.html

相关文章

  • 增强 扫描版模糊PDF 清晰度
     如何改善PDF的清晰度?———小白教程-知乎(30封私信/81条消息)想把自己的书籍扫描成PDF,什么样的扫描仪比较合适?-知乎 ComicEnhancePro等书籍图片处理软件......
  • PDFSharp - Graphics
    PDFSharp-GraphicsGraphics-PDFsharpandMigraDocWiki所有的Graphics类型都设计成模仿来自System.Drawing命名空间中的GDI+类型。类型的名称也类似,例如:XColo......
  • 读取隐藏在jpg中的dex文件
    如何把dex隐藏到图片里把DEX文件隐藏到JPG文件中的过程被称为"文件注入"。下面是一种将DEX文件注入到JPG文件中的方法,但请注意,这种方法仅供学术研究目的使用,不应用于非法......
  • .net6 使用iTextSharp操作PDF模板
       一、首先要通过Adobe制作好PDF模板,目前发现只能通过这个工具才能制作PDF模板Adobe自己去官网下载,不过官网是要订阅的。或者自己去找破解版也行;下载后废话不多......
  • thinkphp的$_SERVER['SERVER_NAME']或者input('server.SERVER_NAME')获取到的域名不对
    情况:我的项目后台做了批量查询违禁词的功能,是需要循环所有页面的,代码中有一句是动态获取站点域名$url_pre=input('server.REQUEST_SCHEME').'://'.input('server.S......
  • Vue 引入PDF文件预览,可下载,插件vue-pdf
    最近的一个项目中用到了读取本地文件PDF,先是用了PDF组件,没有达到想要的效果,后来查找官网用iframe标签来替代PDF组件,达到想要的效果了, 1、第一步先安装vue-pdf插件......
  • uni-app+thinkphp: 多图片文件上传(hbuilderx 3.7.3)
     一,js代码<template><view><viewstyle="width:750rpx;background:#ff0000;"><uni-grid:showBorder="false":column="4":highlight="t......
  • uni-app+thinkphp: 单图片文件上传(hbuilderx 3.7.3)
    一,js代码:<template><view><imagemode="aspectFit":src="imageSrc"@tap="chooseImage"style="background:gray;width:200rpx;height:200rpx......
  • 图片转为base64和 图片的base64转为pdf的base64
    publicStringGetImageStr(StringimgPath){//将图片文件转化为字节数组字符串,并对其进行Base64编码处理StringimgFile=imgPath;//待处理的图片......
  • thinkphp find_in_set 与 replace
    //find_in_set$model->where('find_in_set(:cid,rc)',['cid'=>9])->select();//replace替换搜索(10,12),原(10),新(9)$model->where('id',1)->update(......