Добавление ссылки на статический файл с пользовательским URL в Symfony - PullRequest
1 голос
/ 13 января 2010

При использовании Symfony 1.0 возможно ли создать ссылку на статический файл , то есть файл PDF или DOC и ссылку на него по пользовательскому URL ?

Я хотел бы добавить файл, например, example.pdf в папку web / uploads / pdf на сервере, но затем ссылку на него с URL-адресом, таким как: http://www.example.com/docs/old/test/example.pdf

Эта ситуация возникла из-за того, что некоторая печатная документация до разработки нового веб-сайта указывает на указанный URL-адрес.

1 Ответ

2 голосов
/ 13 января 2010

Хорошо, я понял это (с огромной помощью от этого сообщения в блоге . Спасибо Thaberkern )

Создать маршрут для получения имени файла:

legacy_docs:
  url: /docs/:filename.pdf
  param: { module: default, action: display_pdf }

Затем создайте действие для вывода pdf:

  public function executeDisplayPdf()
  {
    $filename = $this->getRequestParameter('filename');

    $path_to_pdf = 'http://'.sfConfig::get('website_hostname').'/uploads/'.'/'.$filename.'.pdf';

    //create the response object
    $this->getResponse()->clearHttpHeaders();
    $this->getResponse()->setHttpHeader('Pragma: public', true);
    $this->getResponse()->setContentType('application/pdf');
    $this->getResponse()->sendHttpHeaders();
    $this->getResponse()->setContent(readfile($path_to_pdf));

    //set up the view
    $this->setLayout(false);
    sfConfig::set('sf_web_debug', false);

    return sfView::NONE;
  }
...