使文件在查看时可见但不可下载

Make a file visible at view but not downloadable

我在我的 Blade 视图中显示了一个 .stl 文件,例如:

var stl_viewer=new StlViewer(document.getElementById("stl_cont"), {
    auto_rotate:true,
    auto_resize: true,
    cameray: 30,
    allow_drag_and_drop:true,

    models: [ {
        id:0,
        //It can be direct link or something it doesn't matter.
        filename:"{{Storage::url($file->path)}}"
    } ]
});

HTML 代码为:

<div id="stl_cont"  style="min-height: 400px;"></div>

当用户检查页面时,他们可以找到 link,他们可以直接下载文件。

我不希望发生这种情况。

好的,我用 base64_encode function 解决了我的问题。

首先,我发送 URL 加密:

$encrypted = base64_encode($file->path);
    return view('product', compact('product','encrypted'));

然后我把数据存入一个变量on-page javascript.

var tboe  = '{{$encrypted}}';

此变量变为全局变量,我从单独的 .js 文件中获取变量,例如:

   //example
   var file = atob(tboe);

我相信这会让用户很难找到文件。我找不到其他方法了。