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

Laravel Orchid中如何获取已上传文件附件的相对URL?

Laravel Orchid 获取附件相对URL方法

$attachment->url() 方法默认会拼接当前应用的域名生成完整绝对URL,要获取你需要的/storage开头的相对URL,直接读取附件模型的path属性即可,这个属性存储的就是文件的公开相对路径,和你预期的格式完全匹配。

代码示例

修改你的上传逻辑如下:

public function uploadPhoto(Request $request)
{
    $file = new File($request->file('fileData'));
    $attachment = $file->load();

    // 直接取path属性即为相对URL
    $relativeUrl = $attachment->path;
    error_log("Uploaded relative url: ". $relativeUrl);

    return response()->json([
        'file_url' => $relativeUrl
    ]);
}

兼容方案(不推荐)

如果你已经拿到了完整URL结果,也可以通过PHP内置方法解析出路径部分,但这种方式性能比直接读属性差,仅适合临时兼容场景:

$fullUrl = $attachment->url();
$relativeUrl = parse_url($fullUrl, PHP_URL_PATH);

注意事项

  • 请确认config/platform.php中附件使用的磁盘为public磁盘,且已经执行过php artisan storage:link命令创建了存储软链接,返回的相对路径可以直接在前端正常访问。
  • 直接读取path属性是Orchid原生兼容的写法,后续框架版本升级不会出现路径匹配错误问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 22:27:21