2017-08-14 71 views
0

我有簡單的Download按鈕,這是看起來像這樣跟蹤點擊下載按鈕並保存在數據庫

<a download="{{ $thumb }}" href="{{ $thumb }}" class="btn btn-success">Download Image</a> 

它出現的頁面上,當圖像被發現。該按鈕工作正常,正在下載圖像。

該頁面有簡單的輸入字段,用戶可以搜索圖像,如果找到圖像,它會顯示在頁面上,並帶有按鈕下載。

我已經做了一個功能,它保存每個string這是搜索,現在我想知道如果我可以保存也如果按鈕Download被點擊,例如,圖像被下載。

有人可以給我看一個例子嗎?我在這裏使用laravel 5.4。所以也許我需要傳遞給控制器​​點擊事件?

電流控制器功能

public function getImage(Request $request) 
{ 
    $url = get_curl_content_tx('http://example.com/api?url='.$request->input('url')); 
    $items = json_decode($url, true); 
    $thumb = $items['thumbnail_url']; 

    $db_save = new Image(); 

    $ip = $request->ip(); 
    $ip = DB::connection()->getPdo()->quote($ip); 

    $db_save->url = $request->input('url'); 
    $db_save->ip = DB::raw("inet_aton($ip)"); 
    $db_save->save(); 
    return view('getImage',compact('thumb')); 
} 
+0

我相信你需要用js(觸發「click」事件)和一個Ajax請求(發送圖像的名稱服務器的腳本,將數據添加到您的DB)。 –

+0

你的意思是包裝的形式可能的按鈕,並在我的控制器創建功能在點擊數據庫中保存+1? – Ivan

+0

當然。或者讓'href'轉到記錄內容的路徑,然後重定向到文件。 – ceejayoz

回答

1

是。確保href將轉到一條路線,您可以跟蹤這些記錄,並且如果計數器在那裏,您可以傳遞特定圖像以更新Image模型本身的記錄模型?事情是這樣的:

public function TrackDownload(Image $image){ 
    $imageRecord = Record::where('image_id', '=', $image->id); 

    $imageRecord->update([ 
     'download_counter' => $imageRecord->download_counter + 1; 
    ]); 

    return redirect()->route(); 
} 
+0

但我還不知道該ID。一旦圖像被返回,它就會被保存在數據庫中,因爲它來自api。我用這個函數更新了我的問題 – Ivan