关于线上环境用 Intervention\Image 处理 https 图片路径报错问题?

file
file
在本地环境,http与https的图片路径,Image都能完美处理;
在线上环境时,http路径的图片Image能正常处理,而为https路径就会直接报错;
麻烦路过的大佬帮忙看看,线上环境是不是需要进行特殊设置?怎么设置?拜谢了!

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 5

顶一下,希望有路过的大佬看看

6年前 评论

从异常的字面意思来看 是没有读权限啊

6年前 评论

@klgd 整个项目,所有文件都有读写权限啊

6年前 评论

@MomentD 应该是说你没有读百度图片的权限,有没有可能获取不了图片数据?你在服务器上用curl之类的工具请求一下图片地址 看返回的是什么内容

6年前 评论

@klgd 问题已经解决了,不过感觉还是有点怪怪的;先说办法:

感谢klgd的思路,首先是先用file_get_contents()函数获取对应图片信息,直接就报错

file

看到错误信息,可能是SSL证书的问题,所以就用curl跳过SSL证书检测,重新获取图片信息

file

这时用新方法get_url_content(),发现在线上已经能够获取到图片信息了,用var_dump()打印结果,是一堆图片的乱码内容,这里就不贴了,总之已经能获取到图片信息了;

然后去找Intervention\Image的源码,发现它是通过file_get_contents()进行对图片获取内容的

file

然后把它的方法file_get_contents()换成我新写的获取URL内容的方法get_url_content();上传到线上后,发现能够正确获得图片的信息了

file

这边问题虽然解决了,不过还要问下,在线上环境必须要进行SSL的判断么,本地就没这问题,不是特别了解它们中的区别?

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!