首页 > 解决方案 > PHP从没有直接图像名称的url下载图像

问题描述

{{my_salesforce_url}}/sfc/servlet.shepherd/document/download/0694U000007w5QyQAI?operationContext=S1

这个 url 包含一个名为 ine_file.jpg 的文件,当在浏览器中运行并直接下载文件时,但是当我尝试使用 php 下载并将文件保存在本地时没有工作

我尝试:

file_put_contents(public_path() . "/" . $fileName, fopen($file["url"], 'r'));

    file_put_contents(public_path() . "/" . $fileName, file_get_contents($url));

任何的想法 ?如何从 url 获取文件并使用 php o curl 保存文件?

标签: phplaravelcurllaravel-5php-5.6

解决方案


没有魔法,您应该使用copy()函数下载外部图像,然后在响应中将其发送给用户:

     $filename = 'temp-image.jpg';
     $tempImage = tempnam(sys_get_temp_dir(), $filename);
     copy('https://my-cdn.com/files/image.jpg', $tempImage);

     return response()->download($tempImage, $filename);

推荐阅读