Notice při sdílení odkazu na Facebooku
- johnygemityg
- Člen | 30
Ahoj, narazil jsem na zajímavý problém.
Kontroluji stahování souborů, ověřuje se zda, je potřeba na download být
přihlášen atd.
Když se odkaz na podmíněný soubor sdílí na FB tak to vyhodí do náhledu
Notice.
Notice
SCHOOLCLOUD.CZ
…/vendor/nette/nette/Nette/Application/UI/Presenter.php:187source
Nette\Application\UI\PresenterComponent→ tryCall (arguments)
odkaz na test:
http://schoolcloud.cz/…/download/75
Zde je action, co se o to stará.
public function actionDownload($id){
$f = $this->model->file->getFile($id)->fetch();
if(!$f){
$this->flashMessage('Soubor nenalezen.');
$this->redirect('files:default');
return;
}
if($f->private ){
if(!$this->user) {
$this->flashMessage('Pro tento soubor musíte být přihlášen.');
$this->redirect('Sign:In',array('backlink' => $this->storeRequest()));
return;
}elseif($this->user->class_id != $f->class_id ){
$this->flashMessage('Pro tento soubor musíte být ve stejné třídě.');
$this->redirect('HomepageIn:default');
return;
}
}
$path = $this->model->file->path.$f->path;
try{
$this->sendResponse(new FileResponse($path, $f->name));
}catch(Exception $e){
if ($e instanceof \Nette\Application\AbortException) {
throw $e;
}
$this->flashMessage('Soubor nebyl nalezen na disku. Kontaktujte prosím podporu nebo ho smažte a dělejte jakože nic.');
$this->redirect('HomepageIn:default');
return;
}
}
Děkuji za nápady jak to spravit.
- Jiří Nápravník
- Člen | 710
Nejspíše jsi tam jednou měl chybu, když to někdo nahrával. Facebook si to nacachoval a ted ti to dam dava. Kdyz dam ottiz jina id tak to notice nedava. Je proti tomu jednoduche reseni. Kdyz ti to fb nacachuje blbe, tak vlozit adresu sem a jeho cache se smazne: https://developers.facebook.com/tools/debug/