Я пытаюсь загрузить файл из postgresql, закодированный в базе 64. Кажется, что содержимое файла в базе данных хорошее, bytea
, но это не то же самое, когда я загружаю его с помощью PHP:
Я использую PHP 5.6 с Symfony 2.8. Я пытался декодировать в базе 64, но безуспешно.
$name = $file->getName();
$content = base64_decode(stream_get_contents($file->getContent()));
$contentType = $file->getContentType();
$response = new Response();
$response->headers->set("Cache-Control", "no-cache private");
$response->headers->set("Content-Description", "File Transfer");
$response->headers->set('Content-Type', $contentType);
$response->headers->set('Content-Disposition', 'attachment; filename="' . $name . '"');
$response->headers->set("Content-Transfer-Encoding", "binary");
$response->headers->set('Content-Length: ', strlen($content));
$response->sendHeaders();
$response->setContent($content);
return $response;
Для этого примера я создал файл с notepad ++, содержащий строку "test
". В базе данных он отображается так: "dGVzdA==
".
Когда я загружаю файл и декодирую его, содержимое это «Ǯ8kθطw
», оно должно быть «test
».