Архивируйте и загружайте файлы, определенные URL и параметрами

#php #mysql #file #download

#php #mysql #файл #Скачать

Вопрос:

На сайте, использующем PHP и MySQL, мне нужно настроить ссылку, которая будет захватывать несколько файлов .pdf, помещать их в zip-архив и загружать zip. У меня большая часть этого работает, за исключением одного: местоположения .pdf хранятся в базе данных и извлекаются с использованием URL-адресов, таких как:

http://www.mysite.org/bin/c5i?mid=44amp;rid=59amp;gid=0amp;k1=41576

Я могу получить доступ к файлам, используя только похожие URL-адреса, подобные приведенному выше; у меня нет прямого доступа к файлам. Мой вопрос: как я могу использовать HTTP-вызовы для передачи файлов в переменную, которую я могу поместить в Zip-архив для загрузки?Я пробовал функцию readfile(), но она не сработала. Есть предложения?

Спасибо

Комментарии:

1. Вот почему вы не храните файлы в базе данных. Вы можете хранить ССЫЛКИ на файлы, но сами файлы должны храниться как обычные файлы на диске, но похоронены в БД. И какая польза от http-вызовов, если файлы находятся в БД? Вам нужно будет использовать вызовы БД для извлечения данных файла.

2. Спасибо за ответ. Я не создавал приложение; просто работаю над ним. ИТ-сервер клиента не даст мне доступа к базе данных для выполнения вызовов базы данных. Все, что у меня есть, это URL-адреса, которые содержат параметры для вызовов базы данных. Я надеялся, что есть способ выполнить вызовы из PHP, а затем сохранить возвращенный файл .pdf в переменной.

3. не совсем. поскольку архивирование будет выполнять php, вам НУЖНО будет захватить байты pdf и поместить их туда, где php сможет их получить, чтобы он мог создать zip. и поскольку функции zip ничего не знают о базах данных, вам нужно будет select преобразовать PDF-файлы в строковый var и передать этот var функции zip и / или записать байты на диск и заархивировать их там.