ссылка на загрузку документов mysql - PullRequest
0 голосов
/ 01 сентября 2011

У меня есть форма для загрузки

документы загружаются в папку (Uploads / Reference /), а ссылка на документ сохраняется в базе данных mysql следующим образом:

$sql="INSERT INTO uploaddate (upload_id, file_link)
            VALUES
            ('$upload_id', '$target')";

ссылка, хранящаяся в столбце «file_link» таблицы «uploaddata», выглядит следующим образом:

(Uploads / Reference / 6206webhost change.txt)

Теперь, когда я запускаю оператор выбора для этой таблицы, вместо того, чтобы просто отображать расширение в виде простого текста, я хотел бы получить кликабельную ссылку, которую можно использовать для загрузки загруженного документа из его местоположения.

Как я могу это сделать?

1 Ответ

1 голос
/ 01 сентября 2011

Вы можете сделать это: когда вы визуализируете страницу, используя PHP, создайте ссылку <a href="/download.php?id=doc_id">Download</a>.
Затем на новой странице под названием download.php получите идентификатор документа,прочитайте имя файла из db, используя этот doc_id, и отправьте этот файл, чтобы пользователь мог загрузить его ...

РЕДАКТИРОВАНИЕ:

  • с $_GET['id'] вы получите doc_id: будьте осторожны, проверьте, действительно ли значение существует и очистите его
  • Запросите вашу базу данных;например, SELECT file_link FROM uploaddate WHERE upload_id = doc_id;
  • Посмотрите на принятый ответ здесь

Я пишу пример из другого поста, но проверьте, чтобы получить все данные:

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...