Для того чтобы скачать файл на сервер по ссылке без расширения, вам понадобится использовать язык PHP и его функционал для работы с удаленными файлами.
Самый простой способ - это использовать функцию file_get_contents(), которая позволяет получить содержимое файла по его URL. Однако, чтобы сохранить файл на сервере без расширения, нам понадобится указать имя файла для сохранения в соответствующем заголовке HTTP.
Вот пример кода:
$fileUrl = 'https://example.com/path/to/file'; // URL файла для скачивания $savePath = '/путь/к/директории/на/сервере'; // Путь к директории на сервере, где будет сохранен файл // Открываем ссылку на файл $resource = fopen($fileUrl, 'r'); // Получаем информацию о заголовках ответа $headerInfo = stream_get_meta_data($resource); // Ищем заголовок "Content-Disposition", чтобы получить оригинальное имя файла $fileName = null; foreach ($headerInfo['wrapper_data'] as $header) { if (strpos($header, 'Content-Disposition') !== false) { $fileName = basename(explode('=', $header)[1]); break; } } // Генерируем уникальное имя файла на сервере $saveFileName = uniqid() . '.' . pathinfo($fileName, PATHINFO_EXTENSION); // Путь к файлу на сервере $saveFilePath = $savePath . '/' . $saveFileName; // Создаем и сохраняем файл на сервере $file = file_get_contents($fileUrl); file_put_contents($saveFilePath, $file); // Закрываем ресурс fclose($resource);
В этом примере мы используем функцию fopen() для открытия ссылки на файл, а затем, используя функцию file_get_contents(), получаем содержимое файла. Дополнительно, с помощью функции stream_get_meta_data() получаем информацию о заголовках ответа, чтобы извлечь оригинальное имя файла. Далее, мы генерируем уникальное имя файла на сервере с помощью функции uniqid() и сохраняем файл на сервере с помощью функции file_put_contents(). Затем закрываем ресурс, вызывая функцию fclose().
Обратите внимание, что на сервере должны быть установлены необходимые разрешения для записи файлов в указанную директорию. В противном случае, код может вызвать ошибку "Permission denied".