Закачка файлов (картинок)

При использовании данных типа file (то есть при закачке файлов), в элемент form нужно добавить атрибут enctype (см. отмеченное).

photos.tpl
<?php

# Ввод посетителем одной записи
echo "
<form action='?update&block=$block&rec=new' enctype='multipart/form-data' method='post'>
    Фото: <input type='file' name='dat[1]'>
    Описание: <input type='text' name='dat[2]'>
    <input type='submit'>
</form>
";


# Отображение всех записей
foreach ($tab as $dat)
echo "
    {$dat['edit']}
    <img src='datafiles/$dat[1]'><br>
    $dat[2]
    <br><br>
";

?>

photos.tdd

<?php

$types[1] = 'file';
$types[2] = 'varchar(255)';

$params['multi-record'] = true;
$params['public'] = true;

?>


Миниатюрный вариант изображения


Если в другом файловом поле (3) нужно автоматически без доп. закачки создавать миниатюрный вариант изображения, то можно воспользоваться параметром file-данного sourceField:

photos.tdd

<?php

$types[1] = 'file';
$types[2] = 'varchar(255)';
$types[3] = 'file sourceField(1)';
. . . . . . . . . .
. . . . . . . . . .
?>
При этом, данное с формы должно обязательно передаваться, пусть даже пустое. Но чтобы это поле не отвлекало внимание пользователя, его можно сделать скрытым:

photos.tpl
<?php

# Ввод посетителем одной записи
echo "
<form action='?update&block=$block&rec=new' enctype='multipart/form-data' method='post'>
    Фото: <input type='file' name='dat[1]'>
    Описание: <input type='text' name='dat[2]'>
    <input type='file' name='dat[3]' style='visibility:hidden'>
    <input type='submit'>
</form>
";
. . . . . . . . . .
. . . . . . . . . .
?>