如何解决非公共路径上的 Symfony 控制器中的 liip Imagine_filter
有没有什么方法可以在不将图像源复制到公共路径的情况下使用 liip Imagine_filter? 我看不到如何设置解析器/加载器以从非公共文件位置加载图像并同样存储它们。
我定义了一个水印过滤器,其中水印图像放置在公共路径之外 - 可以正常工作。但仅适用于放置在公共路径中的图像。
我在 Symfony 5 和 "liip/imagine-bundle": "^2.6"
解决方法
我和你有同样的问题,我找到了这个解决方案,当然是一个小小的解决方法,但效果很好。
所以我将文件从 $remoteWatermak
复制到服务器中。如果设置了 $localWatermark
,我会检查文件是否存在。
$arrContextOptions=array(
"ssl"=>array(
"verify_peer"=>false,"verify_peer_name"=>false,),);
if($localWatermark){
$filesystem = new Filesystem();
if(!$filesystem->exists($localWatermark)){
$contents = file_get_contents($remoteWatermark,false,stream_context_create($arrContextOptions)); // get file
file_put_contents($localWatermark,$contents);
}
}else{
$contents = file_get_contents($remoteWatermark,stream_context_create($arrContextOptions)); // get file
$file = "uploads/watermarks/" . uniqid();
file_put_contents($file,$contents);
$localWatermark = $file;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。