Чтобы создать ссылку для загрузки файла с Яндекс Диска в PHP, вам нужно выполнить следующие шаги:
1. Получить URL файла с Яндекс Диска, используя API Яндекс Диска.
2. Создать ссылку на этот URL, предварительно добавив к нему параметры, необходимые для аутентификации (например, токен доступа).
Пример кода для создания ссылки на скачивание файла с Яндекс Диска:
```php
$fileUrl = 'https://cloud-api.yandex.net/v1/disk/resources/download?path=/path_to_file/file.txt';
$headers = array(
'Authorization: OAuth YOUR_ACCESS_TOKEN'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $fileUrl);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
$downloadUrl = $data['href'];
echo '<a href="' . $downloadUrl . '">Download File</a>';
```
Чтобы настроить скачивание файла с Яндекс Диска через API на защищенной странице приложения на PHP так, чтобы браузер начал автоматическое скачивание файла, вам нужно добавить заголовки Content-Disposition и Content-Type к ответу API. Например:
```php
$fileUrl = 'https://cloud-api.yandex.net/v1/disk/resources/download?path=/path_to_file/file.txt';
$headers = array(
'Authorization: OAuth YOUR_ACCESS_TOKEN'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $fileUrl);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
$downloadUrl = $data['href'];
header('Content-Disposition: attachment; filename="file.txt"');
header('Content-Type: application/octet-stream');
readfile($downloadUrl);
```
Этот код отправит заголовки Content-Disposition и Content-Type в ответе, указав браузеру начать автоматическое скачивание файла.