powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [php] Выгрузка файла
7 сообщений из 7, страница 1 из 1
[php] Выгрузка файла
    #38113644
SQL-Talker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!
Подскажите новичку: на сервере сайта в хранятся файлы, которые должны выгружать посетители, причем имена файлов случайные, а реальные имена хранятся в таблице. Соответственно, при выкачке файла пользователь должен получить файл с реальным именем.

Делаю так:
ссылка на странице на файл выглядит так - http://localhost/getfile.php?id=4
код скрипта getfile.php:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<?php
session_start();
...
if (isset($_GET['id'])) {
	$link = @mysqli_connect(MYHOST, $_SESSION['name'], $_SESSION['pswd'], BAS);
	$req = 'select * from fmsg where id = '.$_GET['id'];
	$res = mysqli_query($link, $req);
	$row = mysqli_fetch_array($res);
	$realnam = $row['rnam'];
	$hshnam = 'files/'.$row['hnam'];
	header("HTTP/1.1 200 OK");
	header("Expires: Thu, 19 Nov 1981 08:52:00 GMT");
	header("Cache-Control: None");
	header("Pragma: no-cache");
	header("Accept-Ranges: bytes");
	header('Content-Disposition: attachment; filename="'.$realnam.'"');
	header("Content-Transfer-Encoding: binary");  
	header("Content-Length: " . filesize($hshnam));
	header("Proxy-Connection: close");
	readfile($hshnam);
exit;
}
?>


В результате получается не совсем правильно - имя файла в диалоге сохранения - "getfile.htm" , т.е. по имени скрипта.
Что я делаю неправильно? Как сделать чтобы имя файла к сохранению было правильным?
...
Рейтинг: 0 / 0
[php] Выгрузка файла
    #38113705
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL-Talker,

здравствуй sql injection
...
Рейтинг: 0 / 0
[php] Выгрузка файла
    #38113756
SQL-Talker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u,

Ну, да, возможны инъекции. Я потом поправлю все, мне нужно для начала получить работающий код.
...
Рейтинг: 0 / 0
[php] Выгрузка файла
    #38114339
SQL-Talker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может ли это быть связано с тем что реальные имена файлов длинные и содержат русские буквы?
...
Рейтинг: 0 / 0
[php] Выгрузка файла
    #38114369
SQL-Talker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все, разобрался. В базе строки хранятся в utf8, а я тут забыл после соединения с базой указать 'SET NAMES "utf8"'.
...
Рейтинг: 0 / 0
[php] Выгрузка файла
    #38115429
BACH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделай хотяб intval($_GET['id']) че дыры то оставлять.
...
Рейтинг: 0 / 0
[php] Выгрузка файла
    #38117409
SQL-Talker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BACH,

ага, уже.
спасибо.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [php] Выгрузка файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]