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

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

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 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年前 评论

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