目前我使用的是laravel,正如您所知,有很多方法可以统计单个页面的访问者(点击路线(。但我也想统计一下公共文件夹中的图片或pdf文件的访问者,有什么想法吗?
您需要使用应用程序中的代理URL绕过到文件位置的路由。然后使用代理URL来访问文件。
例如:如果您有一个可在yourdomain.com/public/some-file.pdf
访问的pdf文件,请为类似yourdomain.com/proxy/some-file.pdf
的内容创建一个代理URL。
在管线文件中创建相应的管线。请注意,最后一部分是动态的,应该标识您的文件。
Route::get('/proxy/{fileName}', [DefaultController::class, 'proxy'])
在您的DefaultController.php
文件中进行必要的计数记录&然后将您的原始文件作为响应。
public function proxy($fileName) {
***your logic to increase visit count. db addition or something
$pathToFile = Storage::path($fileName);
return response()->file($pathToFile);
}
一种可能的方法是使用返回pdf/image流的路由。这样,您就可以使用与页面相同的方法。可以通过$request->ip什么的。缺点是,你必须重新制作页面上的所有图片/pdf链接,以重定向到路由,而不是资产路径或你使用的任何东西。