使文件在视图中可见,但不能下载



我在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>

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

我不希望这种事发生。

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

首先,我发送加密URL:

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

然后我将数据放入页面上的javascript变量中。

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

这个变量是全局的,我从分离的。js文件中获取变量,如:

   //example
   var file = atob(tboe);

我相信这会使用户难以到达文件。我找不到别的办法。

最新更新