You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel调用Storage::get提示路径文件不存在但路径正确问题求助

错误原因说明

  1. Storage Facade 路径匹配逻辑错误
    Laravel 中Storage Facade 默认的查找根目录为storage/app,你传入public_path()生成的绝对路径时,Storage 会将传入路径识别为相对于自身根目录的相对路径,最终拼接出的查找路径和实际文件路径不符,因此抛出文件不存在错误。
    另外你报错信息里的路径缺少根目录前缀/(正常Mac系统下的绝对路径应为/Applications/...),也会导致路径被识别为相对路径,进一步触发找不到文件的问题。
  2. 方法调用逻辑错误
    Storage::get()方法返回的是文件内容字符串,并非文件实例,后续调用move()方法本身也会执行报错。

解决方案

如果要实现移动public目录下的文件,推荐两种实现方式:

  • 方式1:使用File Facade 操作(更适合public目录的本地文件操作)
$imageName = $thishire->color_image;
$originPath = public_path('/img/colorImages/' . $imageName);
$targetPath = public_path('/img/uploads/' . $imageName);

// 先判断文件是否存在,避免执行报错
if (\File::exists($originPath)) {
    \File::move($originPath, $targetPath);
}
  • 方式2:使用Storage的public磁盘操作(需要先确认配置)
    先确认config/filesystems.php中disks.public.root配置为public_path(),再调用:
$imageName = $thishire->color_image;
// 仅需传入相对于public目录的相对路径即可
if (Storage::disk('public')->exists('img/colorImages/'.$imageName)) {
    Storage::disk('public')->move('img/colorImages/'.$imageName, 'img/uploads/'.$imageName);
}

内容的提问来源于stack exchange,提问作者Colin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 10:42:03