Nedaří se mne načíst soubor default.latte ⇒ $text = FileSystem::read($file);
- Karel Chramosil
- Člen | 114
Dobrý den,
používám nette 3.1. Nedaří se mne načíst soubor default.latte, ve kterém je dokumentace k mé aplikaci. Cesta k souboru je správná. Viz zdroják:
Vypíše se chyba:
Zadaná data nejsou správné.Nette\IOException: Unable to read file
‚http:\localhost\revize_spo_qr\www\app\Presenter\templates\DokumUvod\default.latte‘.
failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error
in C:\xampp\htdocs\revize_spo_qr\vendor\nette\utils\src\Utils\FileSystem.php:152
Stack trace: #0
C:\xampp\htdocs\revize_spo_qr\app\Presenters\DokumObsahPresenter.php(52):
Nette\Utils\FileSystem::read(‚http://localhos…‘) #1
C:\xampp\htdocs\revize_spo_qr\vendor\nette\forms\src\Forms\Form.php(456):
App\Presenters\DokumObsahPresenter->insertFormSubmitted(Object(Nette\Application\UI\Form),
NULL) #2
C:\xampp\htdocs\revize_spo_qr\vendor\nette\forms\src\Forms\Form.php(426):
Nette\Forms\Form->invokeHandlers(Array) #3
C:\xampp\htdocs\revize_spo_qr\vendor\nette\application\src\Application\UI\Form.php(167):
Nette\Forms\Form->fireEvents() #4
C:\xampp\htdocs\revize_spo_qr\vendor\nette\application\src\Application\UI\Presenter.php(342):
Nette\Application\UI\Form->signalReceived(‚submit‘) #5
C:\xampp\htdocs\revize_spo_qr\vendor\nette\application\src\Application\UI\Presenter.php(231):
Nette\Application\UI\Presenter->processSignal() #6
C:\xampp\htdocs\revize_spo_qr\vendor\nette\application\src\Application\Application.php(161):
Nette\Application\UI\Presenter->run(Object(Nette\Application\Request)) #7
C:\xampp\htdocs\revize_spo_qr\vendor\nette\application\src\Application\Application.php(90):
Nette\Application\Application->processRequest(Object(Nette\Application\Request))
#8 C:\xampp\htdocs\revize_spo_qr\www\index.php(18):
Nette\Application\Application->run() #9 {main}
?php
namespace App\Presenters;
use Nette;
use Nette\Application\UI\Form;
use Nette\Utils\FileSystem;
use Tracy\Debugger;
final class DokumObsahPresenter extends BasePresenter
{
private $database;
public function __construct(Nette\Database\Context $database)
{
$this->database = $database;
}
public function actionDefault()
{
Debugger::$dumpTheme = 'dark';
$this->template->anyVariable = 'any value';
$this->template->nalezeno_fl = false;
$this->template->Uvod = false;
}
protected function createComponentEditaceForm()
{
$form = new Form();
$form->addText('hledej', 'Najdi text (tlačítko, odkaz a.j.):', 30, 100);
$form->addSubmit('set', 'Hledej v dokumentaci ►');
$form->onSuccess[] = [$this, 'insertFormSubmitted'];
return $form;
}
public function insertFormSubmitted(Form $form)
{
$file = $this->akt_url().'app/Presenter/templates/DokumUvod/default.latte';
Debugger::dump($file);
try {
$text = '';
if(FileSystem::isAbsolute($file)) {
$text = FileSystem::read($file);
//defaultDebugger::dump('true');
}
Debugger::dump($text,);
} catch (Nette\IOException $e) {
$form->addError('Zadaná data nejsou správné.'.$e);
}
$this->template->nalezeno_fl = true;
;
}
}
Děkuji za jakoukoliv radu.
Karel Chramosil
- Marek Bartoš
- Nette Blogger | 1280
$file = __DIR__ . '/templates/DokumUvod/default.latte';
Jak tě vůbec napadlo místo cesty k souboru sestavovat url adresu? Jednak ten soubor máš lokálně, druhak by vůbec neměl být skrze http přístupný.