好的,以下是使用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