2014-12-11 49 views
0

我使用Laravel 4.如何跟踪用户在Laravel 4中的下载?

我在我的视图中有一个下载按钮。

我有很多users有权访问see/click从该按钮下载。

这里是我的问题,

有没有什么办法来保持how many时间我的文件已经被下载和whom轨道?

比方说,

  • 用户A下载27次
  • 用户B下载5次
  • 用户C从来没有下载在所有
  • 用户d下载200时间

所以等等......

我的C ontroller功能

public function file_download($id) 
    { 

     $catalog_download = CatalogDownload::findOrFail($id); 
     $distributor  = Auth::user()->distributor()->first(); 
     $export_type  = $distributor->export_type()->first(); 
     $product_export = $catalog_download->product_exports()->first(); 

     $destinationPath = base_path().'/app/files/product_export/'. $catalog_download->id.'/'. $export_type->id.'/'; 
     $file_name  = $product_export->file_path; 
     $pathToFile  = $destinationPath .$file_name; 

     return Response::download($pathToFile); 
    } 

回答

0

只是用户名和downloadfile的名称作为Ajax调用的数据上的按钮,DB按钮和安全的每一次点击添加一个Ajax调用。然后,您只需查询文件和用户组合,即可获得下载数量。

其他方式将是通过控制器

+0

你能给我一个Ajax调用的快速示例代码吗?当你可以 - :)不必是正确的语法,伪代码很好。我只需要看看基本逻辑 - 如果我决定在Ajax中这样做。谢谢。我希望你能为我做到这一点。 – iori 2014-12-11 04:04:34

+0

在这里你会找到一个:[ajax](http://api.jquery.com/jquery.ajax/) – baao 2014-12-11 04:14:54

1

的保存功能添加到您的控制器和保存上述组合在数据库

您应该创建另一个属性。让我们把它叫做download_count

  • 整数
  • 设置默认为0

在你的控制器功能,到了最后,只是做。

  • $ user-> download_count = $ user-> download_count +1;
  • $ user-> save();

每次,用户试图下载某物,他们都需要通过该功能 - 对吧?

只是increment(+1)它,每一次,他们经历它。我希望我很清楚。好运:)

+0

我喜欢你的解决方案。那么回答!我必须尝试一下,我会让你知道的。 – iori 2014-12-11 03:59:31

+0

哦......我的荣幸。请让我知道,如果我的解决方案为你工作。 – 2014-12-11 04:00:04

0

我能想到的唯一选择是将其存储在数据库中。

用户单击下载按钮后,在数据库中添加+1。