laravel - 带有外部 URL 的 Laravel putFileAs 不起作用
问题描述
试图将外部 URL 图像保存到我的 s3。
但是当我使用下面的代码时,它会返回错误。
$contents = file_get_contents($url);
$filename = Str::slug($findproduct->title)."-".uniqid().".".$extension;
Storage::disk('s3')->putFileAs('product', $contents, $filename, ['visibility' => 'public']);
这是错误:
fopen() expects parameter 1 to be a valid path, string given
解决方案
fopen()
是putFileAs
API Docs调用的第一个函数。
它尝试打开File
作为参数 2 提供的putFileAs()
,在您的情况下是$contents
。(FWIW,较新版本的 Laravel 也接受字符串作为文件路径)
它期望 this 是 aFile
或UploadedFile
object。
尝试改用这个:
$contents = new File($url);
推荐阅读
- r - 如何根据条件更改列表中多个数据框中的列名称?
- reactjs - 使用其他钩子时 usePrevious 可靠吗?
- c++ - 我无法让我的 MergeSort 实现运行
- javascript - 使用 AJAX 在传单上重新加载热图
- java - 如何在 Android 上为 Highcharts 正确配置 DateTime 轴?
- hibernate - 比较 dateCreated 的查询不适用于在 Grails 3.3.10 的测试事务中创建的测试数据
- matplotlib - 从 matplotlib.animation 加载“FuncAnimation”时遇到问题
- flutter - 我该如何解决颤振错误
- javascript - 如何在页面滚动上创建画布动画
- arrays - 如何在 Ruby 中将数组添加到 CSV 文件的列中?