likeshop采集商品图片无法保存解决方案

2024-08-24 15:44

本文主要是介绍likeshop采集商品图片无法保存解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

封面图
在这里插入图片描述

一个修复单,客户的likeshop采集tb商品后,保存到商品库的时候 主图无法显示
报错:

"/www/wwwroot/test.0ev.cn/server/public/uploads/l7pu2aqt/admin/images/d61d40dab9e6245f90b62ede72b51639.jpg"
string(6226) "think\exception\ErrorException:
fopen(/www/wwwroot/test.0ev.cn/server/public/uploads/l7pu2aqt/admin/images/d61d40dab9e6245f90b62ede72b51639.jpg): Failed

最终定位到问题是 app/common.php的saveImageToLocal方法

原本方法如下:

function saveImageToLocal($file_name, $absolute_path, string $save_url = 'uploads/images/')
{try {$data = file_get_contents($absolute_path);$fileName = $save_url . $file_name;$fileLocalFullName = public_path() . $fileName;$f = fopen($save_url . $file_name, "w");fwrite($f, $data);fclose($f);app('\app\Request')->setTempUploadLocalWithFiles(['file'  => ['name'      => $fileName,'type'      => '','size'      => filesize($fileLocalFullName),'tmp_name'  => $fileLocalFullName,'error'     => 0,'full_path' => $fileLocalFullName,],]);//写入数据库中$file = UploadService::image(0);} catch (\Throwable $e) {// var_dump($e->__toString());$file = [];}return $file;
}

修复后方法如下:

function saveImageToLocal($file_name,$absolute_path,$save_url = 'uploads/images/')
{try {try {$data = file_get_contents($absolute_path);
//            var_dump($data);exit();$fileName = $save_url . $file_name;$fileLocalFullName = public_path() . $fileName;$directory = dirname(public_path() . $fileName);if (!is_dir($directory)) {mkdir($directory, 0755, true);  // 递归创建目录}$f = fopen(public_path() . $fileName, "w");fwrite($f, $data);fclose($f);app('\app\Request')->setTempUploadLocalWithFiles(['file'  => ['name'      => $fileName,'type'      => '','size'      => filesize($fileLocalFullName),'tmp_name'  => $fileLocalFullName,'error'     => 0,'full_path' => $fileLocalFullName,],]);//写入数据库中$file = UploadService::image(0);} catch (\Throwable $e) {$file = [];}} catch (\Exception $e) {$file = [];}

区别在于

 if (!is_dir($directory)) {mkdir($directory, 0755, true);  // 递归创建目录}

如果目录不存在 则自动创建目录

这篇关于likeshop采集商品图片无法保存解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1102907

相关文章

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

Linux samba共享慢的原因及解决方案

《Linuxsamba共享慢的原因及解决方案》:本文主要介绍Linuxsamba共享慢的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux samba共享慢原因及解决问题表现原因解决办法总结Linandroidux samba共享慢原因及解决

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

电脑win32spl.dll文件丢失咋办? win32spl.dll丢失无法连接打印机修复技巧

《电脑win32spl.dll文件丢失咋办?win32spl.dll丢失无法连接打印机修复技巧》电脑突然提示win32spl.dll文件丢失,打印机死活连不上,今天就来给大家详细讲解一下这个问题的解... 不知道大家在使用电脑的时候是否遇到过关于win32spl.dll文件丢失的问题,win32spl.dl

java常见报错及解决方案总结

《java常见报错及解决方案总结》:本文主要介绍Java编程中常见错误类型及示例,包括语法错误、空指针异常、数组下标越界、类型转换异常、文件未找到异常、除以零异常、非法线程操作异常、方法未定义异常... 目录1. 语法错误 (Syntax Errors)示例 1:解决方案:2. 空指针异常 (NullPoi