Проблема принудительной загрузки PHP (проблема конфигурации сервера)
Я создал функцию для загрузки после того, как пользователь щелкнет ссылку, файл находится в сторонней службе хранения (Sugar Sync) и доступен через его REST API. Теперь я создал функцию принудительной загрузки и протестировал, что она нормально работает на локальном хосте (появляется диалоговое окно загрузки), но когда я запускаю функцию на сервере, она возвращает страницу с ошибкой "Файл не найден". Я подумал, что это может быть какая-то конфигурация PHP, которую нужно установить на стороне сервера, но я не имею ни малейшего понятия, поэтому любая помощь или подсказка очень ценится.
Вот фрагмент кода:
$sugarsync = new SugarSync($refreshtoken);
$response = $sugarsync->get($url);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: no-cache, must-revalidate");
header("Content-Type: ".$response->mediaType);
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".$response->displayName.";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$response->size);
//file is returned as binary data from the API
print($sugarsync->download(urldecode($url)));
exit();
2 ответа
Как выясняется, после дальнейшего устранения неполадок проблема связана с буферизацией вывода, поэтому мне просто нужно включить это в конфигурации сервера.
Попробуйте добавить ob_get_clean();
перед вашей функцией печати вот так:
ob_get_clean();
//file is returned as binary data from the API
print($sugarsync->download(urldecode($url)));
exit();