首页 > 解决方案 > 使用 JS 从 Laravel 8 存储文件夹访问非公共文件

问题描述

我处于以下情况:

现在我正在尝试通过 javascript 访问这些私有 STL 文件,以将它们加载到我的 Three.js 场景中以供查看。

我的问题是:如果我尝试使用storage_path()我的 Laravel 控制器中的函数预先从数据库中获取文件路径,然后将此文件路径(例如本地/Users/Leon/MyLaravelApp/storage/app/users/1/file.stl:)传递给我的 Three.js STLLoader 函数:

import * as THREE from 'three';
import { STLLoader } from 'three/examples/jsm/loaders/STLLoader.js';

// {...}
let THREE_loader = new STLLoader();
let THREE_geometry;

THREE_loader.load(filePath, function (geometry) {
    THREE_geometry = geometry;

    // {...}
});

我 - 当然 - 每次尝试时都会收到错误消息 404,因为给定的路径是相对于我的网络根目录的,因此不正确!

[错误] 加载资源失败:服务器响应状态为 404(未找到) http://127.0.0.1:8000/Users/Leon/MyLaravelApp/storage/app/users/1/file.stl

现在我的问题是:

有没有办法解决这个问题?如何在我的 Laravel 8 应用程序中从 javascript 访问私有文件(不在公用文件夹中)?必须有解决方案吗?


我想到的其他解决方案:

但这两种“解决方案”绝对不是我的最爱之一!


也许有人可以指出我正确的方向?

最好的问候,莱昂

标签: javascriptlaravelthree.jslaravel-8laravel-storage

解决方案


推荐阅读