Показать сообщение отдельно
Старый 23.11.2005, 15:05
Skubent вне форума Посмотреть профиль Отправить личное сообщение для Skubent Посетить домашнюю страницу Skubent Найти все сообщения от Skubent
  № 4  
Ответить с цитированием
Skubent
 
Аватар для Skubent

Регистрация: Oct 2005
Адрес: Млечный Путь, 7-й рукав, YD AC-451, 3-я планета.
Сообщений: 996
Отправить сообщение для Skubent с помощью ICQ
//Этот кусок в принципе работает, если складывать файлы в базу.
$upload = $_FILES['upload']['tmp_name'];
$upload_name = $_FILES['upload']['name'];
$upload_size = $_FILES['upload']['size'];
$upload_type = $_FILES['upload']['type'];
$ext = get_extension($upload_name);
$file = addslashes(fread(fopen($upload, "r"),$upload_size));
/*
а вот работает ли запрос - вопрос, тут надо глядеть, что у тебя в базе твориться. Предполагается, что структура таблицы имеет вид
CREATE TABLE my_table (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, username VARCHAR(25), filedata BLOB, filename VARCHAR(50), filetype VARCHAR(8), filesize INT, fileext VARCHAR(8))
Тогда запрос принимает вид:
*/
$query = "INSERT INTO my_table SET
username = '$username',
filedata = '$file',
filename = '$upload_name',
filetype = '$upload_type',
filesize = '$upload_size',
fileext = '$ext')";
$result = mysql_query($query);
/*---вроде как сложили все в базу, правда могут быть косяки с BLOB'om, но это уже копать в сторону версии mySQL и php, тут только RTFM спасает ---*/
/*
Теперь помыслим про доставание списка.
*/
function get_user_files($login,$db)
{
//тут - адрес страницы-обработчика файлов.
$adres = 'file.php';
$query = "SELECT * FROM filedata WHERE username='$login' ";
$result = mysql_query($query,$db);
<table width="200" border="1"><tr>
<th>Name</th>
<th>Type</th>
<th>Size</th>
<th>Extension</th></tr>';
while ($row = mysql_fetch_array($result, YSQL_ASSOC))
{echo '<tr><td><a href=$adres?id="'.$row['id'].'>'.$row['name'].'</a>
</td><td>'.$row['type'].'
</td><td>'.$row['size'].'
</td><td>'.$row['ext'].'/>';
}
echo '</table>'; }
/*Теперь - содержание файла-обработчика, в нашем примере file.php*/
<?php
if (!isset($_GET['id'])) {die("Нет ничего.");}
//это чтобы фигню не написали :
$id = $_GET['id'] + 1;
$id = $id - 1;
/*выполним соединение с базой, достанем данные*/
$db = mysql_connect('host', 'login', 'pass');
mysql_select_db('database', $db);
$result = mysql_query("SELECT filedata, filetype, filesize FROM my_table WHERE id='$id'", $db);
$row = mysql_tetch_array($result);
/*отправим в браузер информацию о типе и размере файла*/
header("Content-type: ".$row[1]."\r\nContent-Length: ".$row[2]);
/*Выведем содержимое*/
echo $row[0];
mysql_free_result($result);
mysql_close($db);
?>
__________________
Тут вы найдете ответы на почти все вопросы:
А можно ли сделать так ? - Можно.
Почему не работает ? - Неправильно сделано.
Где ошибка ? - В ДНК.