如何从链接下载文件?

问题描述

我有一个链接,例如“https://www.example.com/example-811.jpg” 我需要将它上传到 Laravel 存储(../app/storage/public/)。 这是我可以在控制器中实现的最大值,一切都很好,但是文件以TMP扩展名加载,如何以所需格式加载文件

        $filename = 'example-811.jpg';
        $tempImage = tempnam('..\storage\app\public',$filename);
        copy('https://www.example.com/example-811.jpg',$tempImage);

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

解决方法

使用此代码下载文件:

$filename = 'example-811.jpg';
$path = public_path().'/storage/'.$filename;
return response()->download($path,$filename,['Content-Type' => $filename]);
,

也许可以更方便地完成,但我只是从 $ tempImage 中删除了行尾的 4 个字符

$expansion = substr($filename,-4);;
$tempImage = tempnam('..\storage\app\public',$filename);
$tempImage = substr($tempImage,-4) . $expansion;

并添加扩展