使文件在查看时可见但不可下载
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);
我相信这会让用户很难找到文件。我找不到其他方法了。
我在我的 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);
我相信这会让用户很难找到文件。我找不到其他方法了。