Kdyby/curl Please provide a writable directory for download
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- ondrej256
- Člen | 187
Dobrý den,
mám problém se stahováním xml souboru z adresy. Vždycky mně to zařve hlášku:
Please provide a writable directory for download
Spadne to tady v CurlSender.php
if ($request->isMethod(Request::DOWNLOAD)) {
244: if (!is_dir($this->downloadDir)) {
245: throw new DirectoryNotWritableException("Please provide a writable directory for download.");
246: }
247: FileResponse::prepareDownload($curl, $this->downloadDir);
248:
249: } else {
volám to takto:
$response = $request1->download($this->tempStorage);
složka tempStorage je vkladana v configu takto:
"%tempDir%/download"
Celý můj kód vypadá takto:
$request = new Request($urlXml);
$request->method = Request::DOWNLOAD;
$request->cookies = $cookies; // vkladam tam navic cookies
$request->options = array(
"RETURNTRANSFER" => 1,
"SSL_VERIFYHOST" => 0,
"SSL_VERIFYPEER" => 0,
);
$response = $request->download($this->tempStorage);
- leninzprahy
- Člen | 150
ondrej256 napsal(a):
Zjistil jsem, že $downloadDir v CurlSender.php je prázdná NULL
Jsi na dobré cestě :) Kde nastavuješ
$this->tempStorage
?
- David Matějka
- Moderator | 6445
kde jsi prisel na to, ze do metody download se predava jako parametr downloadDir?
Tam se predavaji post data
downloadDir se nastavuje curl senderu
- leninzprahy
- Člen | 150
@matej21 má pravdu, stačí si přečíst zdrojáky…
mělo by to vypadat asi takto, viz dokumentace
$request = new Request($urlXml);
$request->method = Request::DOWNLOAD;
$request->cookies = $cookies; // vkladam tam navic cookies
$request->options = array(
"RETURNTRANSFER" => 1,
"SSL_VERIFYHOST" => 0,
"SSL_VERIFYPEER" => 0,
);
$curl = new Kdyby\Curl\CurlSender();
$curl->setDownloadDir($this->tempStorage);
$response = $curl->send($request);