vendredi 20 avril 2018

Laravel: Refresh response()->file

In Laravel I use this route

Route::get('admin/showBill/{file}','Admin\FileController@showBill');

and this code

class FileController extends AuthController
{
  public function showBill($file)
  {
    $path = storage_path('app/bills/' . basename($file)  );
    if(!\File::exists($path)) return back();
    return response()->file($path);
  }

to display a pdf from my storage folder.

So if I have the pdf bill-1.pdf in my /storage/app/bills/ folder, then I can view it with the url

example-domain.com/admin/showBill/bill-1.pdf

The problem is that if I open that pdf with the browser, replace it, and refresh (F5) the page, then the old bill is shown. I guess its because its stored in the cache. Can I force Laravel to show the new replaced file?

I tried

 public function showBill($file)
 {
    $path = storage_path('app/bills/' . basename($file)  );
    if(!\File::exists($path)) return back();
    $path  .= '?v='. time();
    return response()->file($path);
 }

But then Laravel tells me that this file does not exist. I am looking for a solution where I have not to rename the pdf file.



from Newest questions tagged laravel-5 - Stack Overflow https://ift.tt/2K3uu0v
via IFTTT

Aucun commentaire:

Enregistrer un commentaire